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

标签 java selenium testng

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

我想获取 FirstTest 类的名称,但不包含 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());
    }
}

但是我不会依赖“简单的名称”。它们看起来不错,除非您迟早会遇到重复项(因为您无法区分具有相同名称但来自不同包的类)。

关于java - testng - 获取包含失败测试的类的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60222676/

相关文章:

java - 如何使用 selenium 网络驱动程序访问数组的第一个元素并在运行时单击它?

java - Apple Autoingestion 类 : username and password "deprecated", 属性文件?

java - 使用 WebDriver DesiredCapativity 将功能 'applicationCacheEnabled' 设置为 'false'

java - 同时将 allure 与 testNG 和 jUnit 一起使用

java - 在 gRPC Java 应用程序中使客户端流同步/阻塞

java - Android java.lang.NullPointer。 Eclipse Juno - JDK7 路径错误?

ruby-on-rails-3 - 无法让基本的 Selenium + Capybara + Cucumber 在 Rails 3 上工作

php - Selenium 不显示失败的数字行

java - org.apache.poi.openxml4j.opc.PackageRelationshipCollection 问题

java - 数据提供者和断言