我正在使用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
}
}
如果启用了所有测试方法 - tearDown方法正常, 但是如果其中一个测试被禁用 - 我甚至没有达到tearDown方法的断点。
@AfterClass
注释的预期行为是什么?或者我做错了什么?
Testng version: 6.1.1
Webdriver 2.5.0
Java 1.6.0_26
答案 0 :(得分:1)
它对我有用:
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");
}
}
答案 1 :(得分:-1)
如果使用标准junit @AfterClass应在public static void方法上注释,例如:
@AfterClass
public static void logout() {}