Java TestNg@afterclass isn';如果类中存在禁用的测试,则调用t

Java TestNg@afterclass isn';如果类中存在禁用的测试,则调用t,java,selenium,webdriver,testng,Java,Selenium,Webdriver,Testng,我正在使用testng+webdriver进行自动测试。还有一个问题,@AfterClass注释不能像我预期的那样工作 我有以下测试课程: public class WorkspaceTest{ @BeforeClass public void init(){ //Initialization steps } @Test public void testMethod1{...}

我正在使用testng+webdriver进行自动测试。还有一个问题,@AfterClass注释不能像我预期的那样工作

我有以下测试课程:

    public class WorkspaceTest{
        @BeforeClass
        public void init(){
            //Initialization steps
        }

        @Test
        public void testMethod1{...}

        @Test
        public void testMethod2{...}

        @Test(enabled=false)
        public void testMethod3{...}

        @AfterClass(alwaysRun=true)
        public void tearDown{
            //finalizing steps 
        }
}

如果启用了所有测试方法-拆卸方法工作正常, 但若其中一个测试被禁用,我甚至并没有在拆卸方法中达到断点

@AfterClass
注释是否为预期行为?还是我做错了什么

Testng version: 6.1.1
Webdriver 2.5.0
Java 1.6.0_26
这对我很有用:

tearDown
PASSED: testMethod1
PASSED: testMethod2

===============================================
    Test1
    Tests run: 2, Failures: 0, Skips: 0
===============================================
以下是我使用的来源:

public class A {
      @BeforeClass
      public void init(){
          //Initialization steps
      }

      @Test
      public void testMethod1() {}

      @Test
      public void testMethod2() {}

      @Test(enabled=false)
      public void testMethod3() {}

      @AfterClass(alwaysRun=true)
      public void tearDown() {
        System.out.println("tearDown");
      }

}

如果使用标准junit@AfterClass,则应在公共静态void方法上进行注释,例如:

@AfterClass
public static void logout() {}

谢谢你的时间!看来我解决了问题。EclipseTestNG插件存在一些问题。同样的测试在Intellijidea上运行良好。您可以将您的发现通过电子邮件发送给testng用户列表吗?很高兴看到TestNG Eclipse插件是否有问题。我在IntelliJ中运行TestNG测试时遇到了相同的错误,但在我通过Gradle运行测试时,它正确地调用了
@AfterClass
(即使有一个方法
启用=false
)。