有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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


共 (3) 个答案

  1. # 1 楼答案

    我知道您只想为同时执行的两个测试类在@Before中运行一次

    如果您使用的是maven+junit 4.x,那么在测试套件开始和完成之前和之后都有一个设置选项

    或者您可以简单地在套件级别创建一个@ClassRule,请参见doc

  2. # 2 楼答案

    我建议将一个转换器传递到实现IAnnotationTransformer2的TestNG测试用例中。该转换器允许您在运行时控制非@Test注释的行为

    IAnnotationTransformer2

  3. # 3 楼答案

    您可以在两个测试类的公共类中使用@BeforeTest