Zee*_*cer 30 java testng unit-testing
基本上,我有一个拆解方法,我想要登录到刚刚运行测试的控制台.如何获得该字符串?
我可以获取类名,但我想要刚刚执行的实际方法.
public class TestSomething {
@AfterMethod
public void tearDown() {
System.out.println("The test that just ran was: " + getTestThatJustRanMethodName());
}
@Test
public void testCase() {
assertTrue(1 == 1);
}
}
Run Code Online (Sandbox Code Playgroud)
...应该输出到屏幕:"刚刚运行的测试是:testCase"
但是,我不知道getTestThatJustRanMethodName应该具有的魔力.
Ced*_*ust 43
在@AfterMethod中声明一个ITestResult类型的参数,TestNG会注入它:
@AfterMethod
public void afterMethod(ITestResult result) {
System.out.println("method name:" + result.getMethod().getMethodName());
}
Run Code Online (Sandbox Code Playgroud)
Jac*_*ekM 27
如果要在执行测试之前获取方法名称,可以使用以下命令:
import java.lang.reflect.Method;
@BeforeMethod
public void nameBefore(Method method)
{
System.out.println("Test name: " + method.getName());
}
Run Code Online (Sandbox Code Playgroud)
只需声明一个java.lang.reflect.Method参数即可。
@BeforeMethod
public void beforeTestMethod(Method testMethod){
System.out.println("Before Testmethod: " + testMethod.getName());
}
Run Code Online (Sandbox Code Playgroud)
但是TestNG允许您注入更多;)
- 任何@Before方法或@Test方法都可以声明类型的参数
ITestContext。- 任何@AfterMethod方法都可以声明type参数
ITestResult,该参数将反映刚刚运行的测试方法的结果。- 任何@Before和@After方法都可以声明类型为type的参数
XmlTest,其中包含当前标记。- 任何@BeforeMethod(和@AfterMethod)都可以声明类型的参数
java.lang.reflect.Method。此参数将接收此@BeforeMethod完成之后(或在为@AfterMethod运行的方法之后)将调用的测试方法。- 任何@BeforeMethod都可以声明类型的参数
Object[]。此参数将接收即将馈入即将到来的测试方法的参数列表,该列表可以由TestNG注入,例如java.lang.reflect.Method或来自@DataProvider。- 任何@DataProvider都可以声明类型为
ITestContext或的参数java.lang.reflect.Method。后一个参数将接收将要调用的测试方法。
| 归档时间: |
|
| 查看次数: |
35478 次 |
| 最近记录: |