testng - 获取包含失败测试的类的名称


<test name="Test">
<classes>
<class name="io.test.FirstTest"/>
</classes>
</test>

我想获取 FirsTest 类的名称,而onTestFailure中没有包名称。在其他情况下,我需要得到FirstTest,而不是io.test.FirstTest。 怎么做?

public class TestListener extends TestListenerAdapter {
@Override
public void onTestFailure(ITestResult testResult) {
}
}

我用过testResult.getInstanceName(),但它返回io.test.FirstTest。因此,我使用了string.substring()

final String name = testResult.getInstanceName();
final String result = name.substring(navn.lastIndexOf(".") + 1).trim();

但是有更好的解决方案吗?

试试这种方法:

package click.webelement.testng;
import org.testng.Assert;
import org.testng.ITestListener;
import org.testng.ITestResult;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;
@Listeners({TListenerTest.class})
public class TListenerTest implements ITestListener {
@Test
public void toFail(){
Assert.assertTrue(false);
}
@Override
public void onTestFailure(ITestResult result) {
System.out.println(result.getInstance().getClass().getSimpleName());
System.out.println(result.getTestClass().getClass().getSimpleName());
}
}

但是,我不会依赖"简单名称"。它们看起来不错,除非你迟早会遇到 dup(因为你无法区分同名但来自不同包的类(。

最新更新