从另一个@Test方法调用时,如何在TestNG报表中显示@Test结果。请提出答案

时间:2018-07-09 10:14:09

标签: selenium testng

我正在使用ITestListener,范围管理器来生成范围报告。一切正常。 我从另一个方法中调用5个@Test方法。报告(TestNG和范围报告)通常仅显示已执行测试的1个输出。 当从其他方法调用@Test输出时,请提出其他建议。 我想通过excel来控制方法的执行,而不是创建冗长的XML文件。

请检查我的示例代码:建议采用其他任何方式来获得报告

我的TestNG XML文件:

let item of items

我的驱动程序脚本:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="logixexpress" parallel="false">
    <listeners>
        <listener class-name="common.CommonITestNGListener"></listener>
    </listeners>
    <parameter name = "Browser" value = "Chrome"></parameter>
    <parameter name = "DataFile" value = "\\TestData\\Express.xlsx"></parameter>
    <parameter name = "AppRepoFile" value = "\\OR\\AppRepo.properties"></parameter>
    <test name="Express Test Execution">
        <classes>
            <class name="logixexpress.Driver">
            </class>
        </classes>
  </test> 
</suite> 

1 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,那么问题是TestNG报告没有提供有关从其他方法调用的测试方法的任何信息。该问题包括范围报告,但现在,我仅针对TesNG部分进行回答,

否。

在您的@Test方法内部,如果您调用另一个@Test方法,并且您仅在XML文件中包括了调用函数,则TestNG将执行这两种方法,但仅将1作为已执行的测试。例如,如果您编写如下内容:

@Test
public void test1()
{
 test2()
 test3()
}

@Test
public void test2()
{
}

@Test
public void test3()
{
}

您在xml文件中仅包含了test1方法,TestNG将只考虑执行一种测试方法,并相应地准备报告。

此外,以这种方式设计测试是不好的做法。在所有理想情况下,单个测试都应完全相互独立。如果是单个流程,则可能应该同时进行两个测试。如果不是,并且您必须将一项测试的输出用于另一项测试,则可以看到this