TestNG:@Test在类级执行所有方法

时间:2014-06-26 12:02:05

标签: testng

我有一些需要按顺序运行的测试,所以我将@Test(singleThreaded = true)添加到他们的类中。

工作正常,问题在于@Test在类级别,所有方法都是由TestNG执行的,即使他们没有@Test注释,所以最终这会导致我的团队成员想要浪费时间禁用测试,因为他不知道这种特殊性,他只评论@Test而不是整个方法,所以稍后这个应该被禁用的测试最终会使构建过程失败。

有没有办法避免这种情况?

由于

2 个答案:

答案 0 :(得分:2)

一种方法是教育团队:)

您可以在要禁用的单个测试上添加新注释,即 在下面,测试2不会运行。

@Test(singlet..)
public class Testss {


    public void test1(){
        System.out.println("test1");
    }

    @Test(enabled=false)
    public void test2(){
        System.out.println("test2");
    }

    public void test3(){
        System.out.println("test3");
    }
}

答案 1 :(得分:2)

如果顺序执行测试很重要,我建议使用依赖项或优先级,而不是依赖于执行顺序和更改线程数。

@Test
public void method1() {
    System.out.println("This is method 1");
}

@Test(dependsOnMethods = { "method1" })
public void method2() {
    System.out.println("This is method 2");
}

@Test(priority = 1)
public void method1() {
    System.out.println("This is method 1");
}

@Test(priority = 2)
public void method2() {
    System.out.println("This is method 2");
}

结合使用
@Test(enabled = false) //do not run this method as a test

和/或

<suite name="Suite" parallel="classes" thread-count="3">