如果 return 类型在 TestNG Class 中不为空,则不会执行测试
Test is not executed if return type is not void in a TestNG Class
在执行 class 文件时仅作为 TestNG 在执行测试方法之前。结果中 Skipped、failed 或 passed test cases count=0。在整个脚本执行过程中没有错误或异常。
但是当我将 return 更改为 void class 时,执行成功。
谁能告诉我这是什么原因?
您可以在 testng 套件文件中使用 allow-return-values 以将 testng 视为测试。通常对于测试,return 值没有意义,它们应该是独立的单元 - 即使您添加 return 类型,如果允许-return-值到,Testng 将简单地忽略它们是的。
下面是一个演示此操作的示例。
import org.testng.Reporter;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestClassSample {
@BeforeMethod
public void beforeMethod() {
Reporter.log("beforeMethod() executed", true);
}
@Test
public String testMethod() {
Reporter.log("testMethod() executed", true);
return null;
}
}
这里是对应的套件xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="46765400_Suite" verbose="2" allow-return-values="true">
<test name="46765400_test">
<classes>
<class name="com.rationaleemotions.Whosebug.qn46765400.TestClassSample"/>
</classes>
</test>
</suite>
这是执行输出
...
... TestNG 6.12 by Cédric Beust (cedric@beust.com)
...
beforeMethod() executed
testMethod() executed
PASSED: testMethod
===============================================
46765400_test
Tests run: 1, Failures: 0, Skips: 0
===============================================
===============================================
46765400_Suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================
在执行 class 文件时仅作为 TestNG 在执行测试方法之前。结果中 Skipped、failed 或 passed test cases count=0。在整个脚本执行过程中没有错误或异常。 但是当我将 return 更改为 void class 时,执行成功。 谁能告诉我这是什么原因?
您可以在 testng 套件文件中使用 allow-return-values 以将 testng 视为测试。通常对于测试,return 值没有意义,它们应该是独立的单元 - 即使您添加 return 类型,如果允许-return-值到,Testng 将简单地忽略它们是的。
下面是一个演示此操作的示例。
import org.testng.Reporter;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestClassSample {
@BeforeMethod
public void beforeMethod() {
Reporter.log("beforeMethod() executed", true);
}
@Test
public String testMethod() {
Reporter.log("testMethod() executed", true);
return null;
}
}
这里是对应的套件xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="46765400_Suite" verbose="2" allow-return-values="true">
<test name="46765400_test">
<classes>
<class name="com.rationaleemotions.Whosebug.qn46765400.TestClassSample"/>
</classes>
</test>
</suite>
这是执行输出
...
... TestNG 6.12 by Cédric Beust (cedric@beust.com)
...
beforeMethod() executed
testMethod() executed
PASSED: testMethod
===============================================
46765400_test
Tests run: 1, Failures: 0, Skips: 0
===============================================
===============================================
46765400_Suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================