TestNG中是否有特定于测试类的侦听器(类似于Junit runner)?

TestNG中是否有特定于测试类的侦听器(类似于Junit runner)?,junit,testng,Junit,Testng,现有Junit设置: 我已经编写了一个junit测试运行程序,它在测试类执行之前解析测试类,并读取在测试类中每个可测试方法上编写的自定义注释。根据注释的聚合值,制定一个配置,然后使用该配置设置测试环境并对其进行操作。当基于在测试环境上完成的操作执行测试时,我生成结果 当前状态: 现在我们正在为同一个任务评估TestNg。我知道TestNg中的术语和执行方式有些不同。现在,我为TestNG中的各个套件创建了不同的套件文件,每个套件都有一个测试部分,其中包含多个测试类。我也想在TestNG中为Jun

现有Junit设置:

我已经编写了一个junit测试运行程序,它在测试类执行之前解析测试类,并读取在测试类中每个可测试方法上编写的自定义注释。根据注释的聚合值,制定一个配置,然后使用该配置设置测试环境并对其进行操作。当基于在测试环境上完成的操作执行测试时,我生成结果

当前状态:

现在我们正在为同一个任务评估TestNg。我知道TestNg中的术语和执行方式有些不同。现在,我为TestNG中的各个套件创建了不同的套件文件,每个套件都有一个测试部分,其中包含多个测试类。我也想在TestNG中为Junit(如上所述)做些什么,因此,当套件执行并且每个测试类都被执行时,就在执行测试类之前,我想执行我的环境设置和操作。我在TestNG中看到了各种侦听器的文档,但没有找到适合我的特定侦听器(能够截取单个类的执行)。这是一个做我需要的事情的倾听者,还是有一种方法可以实现我想做的事情


我不希望以编程方式执行我的测试设置,而是希望评估TestNg的功能,因此请为我寻求的答案提供答案,而不是谴责这种方法本身。

您能否发布一个测试类的外观示例,您使用的自定义注释,并解释它们的作用


根据您的描述,您可能需要一个
IMethodInterceptor
(TestNG提供了它将要运行的方法的列表,您有机会更改该列表)。

得到了我正在寻找的解决方案。似乎我正在寻找的功能是通过实现接口ITestRunnerFactory提供的,该接口的newTestRunner方法返回我一个测试运行程序。

@RunWith(MyRunner.class)@MyClassAnnotation(artifacts={“TestApp.war”},config=“myconfigfile”)公共类MyTestClass{@Test@MyMethodAnnotation(url=“/TestApp/test.myservlet”,load=10)public void testServletAutoDiscovery(){//获取所生成负载的响应并测试有效响应值}
My class annotation根据提供的值配置容器,My method annotation为部署的工件生成负载。测试类可以包含多个依赖于同一配置文件的此类测试方法。