重命名参数化的testMethod

时间:2017-05-30 23:57:03

标签: java testng

我想在我的一个使用大量参数化对象的类中重命名测试方法。

例如,如果我有一个如此设置的测试方法:

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
/**
 * Unit test for simple App.
 */
public class AppTest 
{
    static class data_class{
        public String name;
        public String two;
        public data_class(String name, String two){
            this.name = name;
            this.two = two;
        }
    }

    @DataProvider(name = "prov1")
    public static Object[] prov1(){
        return new Object[] { new data_class("one", "one"), new data_class("two", "two") };
    }

    @Test(dataProvider="prov1")
    public void testApp(data_class input)
    {
        System.out.println(String.format("Name: %s Two: %s", input.name, input.two));
    }
}

测试运行的输出(在Eclipse中,surefire xml报告类似)显示了此输出,请注意方法名称是testApp,并且该类的对象ID是唯一的区分符:

Test Results

我想输出一个自定义字符串作为测试方法名称或参数,所以在Jenkins中我可以很容易地看到哪个测试用例打破了测试。

我尝试过创建一个实现IAnnotationTransformer的注释侦听器,但是当我执行annotation.setTestName("test")时,它对结果输出没有影响。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

为data_class类方法添加toString。

 public String toString(){
     return this.name;
 }