需要帮助修改Testng报告

时间:2018-03-23 11:07:17

标签: testng testng-dataprovider reportng

在我的报告中,excel表中的最后一个测试名称将附加到我的结果中。这是我的代码

public class Test_suite implements ITest {

    private String testInstanceName="";

    public String getTestName() 
    {
        return testInstanceName;
    }
    private void setTestName(String anInstanceName) 
    {
        this.testInstanceName = anInstanceName;
    }

    @DataProvider() 
    public Object[][] Unit() throws Exception
    {
        Object[][] testObjArray = Excel.getTableArray("./Test Data/Test.xlsx","Unit");
        return (testObjArray);
    }

    @BeforeMethod(alwaysRun=true)
    public void before(Method method,Object[] parameters)
    {
            String testCaseId="";
            testCaseId = parameters[0].toString();
            System.out.println(testCaseId);
            setTestName(testCaseId);
    }

@Test(dataProvider="Unit")
public void Test(){
}

我的报告看起来像这样

Report

2 个答案:

答案 0 :(得分:0)

这是因为所有使用dataProvider的测试都将并行执行。使用的默认线程数是10.正如您所看到的,这些方法使用相同的类,在您的情况下 Test_suite.java

insance变量 testInstanceName 是可变的,并被每个dataprovider线程覆盖,最新用于设置为测试名称。您可以通过在before方法中包含设置的测试名称逻辑而不使用实例变量来实现您打算做的事情

答案 1 :(得分:0)

package API_Testing;

import java.lang.reflect.Method;

import org.testng.ITest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

import resources.Excel;
import resources.Utils;

public class Carto implements ITest{

    private String testInstanceName="";

    public String getTestName() 
    {
        return testInstanceName;
    }

    @DataProvider 
    public Object[][] Data() throws Exception
    {
        Object[][] testObjArray = Excel.getTableArray("./Test_Cases/Test_Cases.xlsx","Carto");
        return (testObjArray);
    }

    @BeforeMethod(alwaysRun=true)
    public void before(Method method,Object[] parameters)
    {
        String testCaseId="";
        testCaseId = parameters[0].toString();
        this.testInstanceName=testCaseId;
    }

    @Test(dataProvider="Data")
    public void Test(String TCname,String Type,String API,String Input,String Input_Path,String Validator,String Output,String Output_value )throws  Exception
    {
        Utils util=new Utils();
        Output_value=Output_value.substring(1,Output_value.length()-1);
        util.Test_body(Type, API, Input, Input_Path, Validator, Output, Output_value);
    }
}

现在我的代码是这样的,输出与我之前上传的相同。没有变化