我在学习TestNG。但我发现在TestNG 6.8中,Annotation AfterTest存在问题。
@AfterTest:在标记内的类的所有测试方法都运行之后,将运行带注释的方法。
来自http://testng.org/doc/documentation-main.html。
但实际上,我的测试用例还没有开始,@ AfterTest执行了!为什么?像这样输出。
beforeSuite!!!!!!!! beforeTest!!!!!!!! afterTest!!!!!!!! PASSED: testContainEnglish PASSED: testGetCurrency PASSED: testGetCurrencyCode PASSED: testGetCurrencyCodeAlt PASSED: testGetNotNullValue PASSED: testGetNotNullValue_hasDefaultValue PASSED: testGetSplitListFromString PASSED: testMappingTable =============================================== Default test Tests run: 8, Failures: 0, Skips: 0 =============================================== afterSuite!!!!!!!! =============================================== Default suite Total tests run: 8, Failures: 0, Skips: 0 ===============================================
答案 0 :(得分:0)
它正常工作。 TestNG显示代码中的所有system.out字符串,并仅在它们之后生成每个测试的结果。要查看它,请尝试使用@Test批注将System.out字符串添加到每个方法。并且不要忘记在testng.xml中设置verbose parametr 2或更多的值。例如代码:
@BeforeTest
public void beforetest()
{
System.out.println("Before Test");
}
@AfterTest
public void aftertest()
{
System.out.println("After Test");
}
@Test
public void test1()
{
System.out.println("test1");
}
@Test
public void test2()
{
System.out.println("test2");
}
@Test
public void test3()
{
System.out.println("test3");
}
和输出信息
T E S T S
-------------------------------------------------------
Running TestSuite
Before Test
test1
test2
test3
After Test
PASSED: test1
PASSED: test2
PASSED: test3