您好,我有一个简单的testNG项目,它有一个SampleTest.java
包含 2 个测试用例的类文件,并且我添加了一个名为 MyListener 的侦听器。为此,我有一个MyListener.java
类文件,它扩展了TestNG 的 TestListener,其中我根据测试用例执行打印通过、失败或跳过。所以每次我运行 SampleTest 时,我都可以在控制台中看到 Pass/fail .. 但我希望它带有类名
我的问题陈述是,如何在 MyListener 类中获取测试用例文件名(即此处的 Sampletest)???我尝试使用stacktrace但没有帮助..因为我猜它没有被调用,但它只是作用于/监听文件中的测试用例..请让我知道如何在侦听器中获取该类的名称????
SampleTest.java:
package com.abc;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;
@Listeners({ com.mindtree.MyListener.class})
public class SampleTest {
@Test
public void SampleTest() throws Exception{
System.out.println("Hello world");
}
@Test
public void SampleTest1() throws Exception{
System.out.println("Hello Swarna");
}
}
MyListener.java:
package com.abc;
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
public class MyListener extends TestListenerAdapter {
private int m_count = 0;
@Override
public void onTestFailure(ITestResult tr) {
log("Fail");
}
@Override
public void onTestSkipped(ITestResult tr) {
log("Skipped");
}
@Override
public void onTestSuccess(ITestResult tr) {
log("\nSuccess\n");
## WANT TO PRINT HERE THE TESTCASE CLASS NAME
}
private void log(String string) {
System.out.print(string);
if (++m_count % 40 == 0) {
System.out.println("");
}
}
}
但不适用于多个测试用例文件。只需在 MyListener 中创建一个 SampleTest 对象,通过 getter 和 setter 访问类名