我想在我的一个使用大量参数化对象的类中重命名测试方法。
例如,如果我有一个如此设置的测试方法:
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是唯一的区分符:
我想输出一个自定义字符串作为测试方法名称或参数,所以在Jenkins中我可以很容易地看到哪个测试用例打破了测试。
我尝试过创建一个实现IAnnotationTransformer
的注释侦听器,但是当我执行annotation.setTestName("test")
时,它对结果输出没有影响。
我怎样才能做到这一点?
答案 0 :(得分:1)
为data_class类方法添加toString。
public String toString(){
return this.name;
}