java使用TestNG,在将一个类调用到另一个类时,是否有方法忽略@before类?
我有两个测试类,每个类都包含一些测试。我希望同时运行这两种方法,而不必同时运行@BeforeClass安装方法。我这样称呼这些课程:
public static void main(String[] args) {
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] { TestClass1.class, TestClass2.class });
testng.addListener(tla);
testng.run();
}
这样做的原因是因为我让他们两个都在弹出菜单中调用,并且只想选择一次该选项。如果不清楚,我将尝试进一步解释
我收集了5个班级的个人测试。我希望每个类都能单独运行,但如果我愿意的话,我也希望让它们一起运行。在@BeforeClass中,我让他们每个人调用另一个类,该类将选择我想要使用的URL(我正在使用TestNG和SeleniumWebDriver进行测试)。 当这段代码运行时,它将在每个类列表中执行@BeforeClass,如果可能的话,如果我使用上面的代码执行测试,我希望在所有测试中忽略@BeforeClass
# 1 楼答案
我知道您只想为同时执行的两个测试类在
@Before
中运行一次如果您使用的是
maven
+junit 4.x
,那么在测试套件开始和完成之前和之后都有一个设置选项或者您可以简单地在套件级别创建一个
@ClassRule
,请参见doc# 2 楼答案
我建议将一个转换器传递到实现
IAnnotationTransformer2
的TestNG测试用例中。该转换器允许您在运行时控制非@Test
注释的行为IAnnotationTransformer2
# 3 楼答案
您可以在两个测试类的公共类中使用@BeforeTest