TestNG自定义测试名称

时间:2016-12-12 12:18:08

标签: testng

我有一个testNg @Factory创建了几个从框架实现ITest接口的测试类实例,如:

public class MyFactory {
    @Factory
    public Object[] tests() {
        return new Object[]{
            new MyTest("first"),
            new MyTest("third"),
            new MyTest("second")
        };
    }
}

public class MyTest implements ITest{

    private String name;

    public MyTest(String name) {
        this.name = name;
    }

    @Test
    public void execute(){
        System.out.println("Done [" + name + "]");
    }

    @Override
    public String getTestName() {
        return name;
        }
    }
}

我需要测试名称来识别哪个测试失败(以防万一)。

当我从IDE(IntelliJ)执行测试时,测试名称没问题,但是当从maven执行时,所有测试(在报告中)都被命名为执行

Maven配置为阅读引用testng.xml的{​​{1}}。

这是Maven日志:

MyTestFactory

生成的报告:

enter image description here

任何帮助?

感谢。

1 个答案:

答案 0 :(得分:0)

使用Reporter.log语句在html文件(在Reporter Output部分下)中可以使用日志输出。这将帮助您确定是否有任何执行方法失败enter image description here

 @Test
public void execute(){
    System.out.println("Done [" + name + "]");
    Reporter.log("Test name is : " + name); //Add this line
}