当前位置: 首页 > 知识库问答 >
问题:

为testng HTML报告创建自定义方法名称

钦侯林
2023-03-14

我有一个简单的测试套件(对这个例子来说非常简单)。我在构造html" target="_blank">函数上使用@Factory表示法和一个@DataProvider,它返回一个城市对象[][](多达100个),我运行我的测试。在这个例子中有3个@Test方法。如果我不将测试名称附加到城市名称,我将有一个超文本语言标记报告,它只会一遍又一遍地列出3个测试方法,无法区分它们。

我尝试过这样的例子:这里。

我的测试课做得很好。我遇到的问题是,当我重写ITest getMethodName()时,会得到意外的输出。

我的代码

@Test(sequential = true)
public class ParcelSearchPage implements ITest{

    private String cityClassName;
    private String cityName;
    private mTestCaseName = "";

    @Factory(dataProvider="getCities")
    public ParcelSearchPage(String className , String cityName){

        this.cityClassName  = className;
        this.cityName = cityName;

    }

    @DataProvider
    public Object[][] getCities(){
       
        return new Object[][]FromAnotherMethod();

    }

     @Override //from ITest
     public String getTestName() {
        return this.mTestCaseName;
     }

     @BeforeMethod(alwaysRun = true)
     public void testData(Method method) {
    
    this.mTestCaseName = String.format("%s : %s" , this.cityClassName, method.getName());
}

    @BeforeClass(alwaysRun = true)
    public void startup(){
         
        // init stuff
    }

    @Test
    public void test1(){

    }

    @Test
    public void test2{


    }

    @Test
    public void test3{

    }

}

我希望这足够详细,可以让这个例子得到理解。

输出:

使用cityClassNames奥尔巴尼、阿斯托里亚、本德

打开Html报告,我希望得到如下列表:

奥尔巴尼:测试1

奥尔巴尼:测试2

奥尔巴尼:测试3

阿斯托里亚:测试1

阿斯托里亚:测试2

阿斯托利亚:测试3

折弯:测试1

折弯:测试2

折弯:测试3

我正在testng中强制使用group\u by\u实例。xml

我在Html报告中看到的是:

奥尔巴尼:test1(奥尔巴尼:test3)

奥尔巴尼:测试2(奥尔巴尼:测试3)

奥尔巴尼:测试3(奥尔巴尼:测试3)

阿斯托利亚:测试1(阿斯托利亚:测试3)

Astoria:测试2(Astoria:测试3)

Astoria:测试3(Astoria:测试3)

折弯:test1(折弯:test3)

折弯:test2(折弯:test3)

弯曲:test3(弯曲:test3)

我发现了其他有类似问题的帖子(甚至是我之前提到的帖子)

我还在@AfterClass方法中简单地尝试了一下。输出仍然有问题。

我不知道如何纠正这一点。我测试了字符串,问题出现在getTestName()方法中。即使我传递像“Hello”这样简单的消息,报告也会显示Hello(Hello)。

我认为TestNGJava代码中可能存在错误。

任何解决方案或指导非常感谢。

共有1个答案

东门晨
2023-03-14

我想出了一个在@Test方法没有参数时效果很好的方法

我创建了第二个数据提供程序,它只是返回当前城市名称的Object[]。然后我只是在test方法中为城市名称创建了一个字符串参数,并以@Test表示法列出了新的数据提供程序。我完全删除了ITest接口

所以现在的输出是:

测试1(奥尔巴尼)

测试2(奥尔巴尼)

测试3(奥尔巴尼)

测试1(Astoria)

测试2(Astoria)

等等等等

它不完美,但它很适合我的需求。

 类似资料:
  • 我正在进行跨浏览器测试,在4种浏览器Chrome、Firefox、IE和Safari上运行多个类中的每个测试方法。 testng HTML报告 即使testng HTML报告会有浏览器名称,但与测试方法相对应也很好。 我找到了这个链接,但我只需要浏览器列旁边的方法列到自定义报告中的链接

  • 我正在从事一个需要以编程方式调用TestNG(使用数据提供程序)的项目。情况很好,只是在报告中,我们得到了@测试方法的名称,这是一种处理许多情况的通用方法。我们希望在报告中得到一个有意义的名字。 我一直在研究这个问题,发现了三种方法,但不幸的是,所有方法都失败了。 1) 实施ITest 我在这里和这里都发现了这个 我一输入@Test方法就设置了我想要的名称(对于我尝试的所有3种方式,这就是我设置名

  • # 5.1 自定义报告是什么? {#51-自定义报告是什么?} 在进行网站分析的时候,通常需要关联多个维度进行分析, 同时根据不同组合维度,选取合适的衡量指标。 例如,衡量 广告流量 达成的事件数 或 不同来源流量的所使用客户端及其地域分布。 在默认报告中,系统提供了单个维度的分析视角。 而自定义报告则可实现关联不同分析维度,衡量站点数据表现。 示例如下: 维度1 维度2 维度3 衡量指标 广告维

  • Navicat Monitor 允许你创建、配置和计划发送报告。你可以在报告中包含以下 4 种类型的图表: 启动或关闭状态 面积图或折线图 复制图表 费时查询分析 创建新报告 你可以通过在以下的页面单击 图标或“+ 新建报告”创建新报告。 图表 费时查询 复制 配置 【提示】你可以前往配置页面编辑和删除报告。 选择实例。 添加要包含在报告中的图表。有关将图表添加到报告的更多信息,请参阅添加图表。

  • 我正在尝试为DropWizard Metrics创建一个自定义报告器,但找不到任何资源或示例来显示如何通过扩展来创建一个报告器。我可以通过遵循现有报告器(CSV、SLF4J等)来扩展这个类,但是我要在哪里注册它? 以下是我试图注册的自定义记者的摘录: 而且,这是创建自定义报告程序的正确方法还是其他方法? 先谢谢你。