TestNG报告中的自定义测试方法名称
我正在开发一个项目,我需要以编程方式调用TestNG(使用数据提供程序)。一切都很好,除了在报告中,我们得到了@Test方法的名称,这是处理许多情况的通用方法。我们希望在报告中得到一个有意义的名称。
我正在研究这个问题,并找到了3种方法,但不幸的是,对我来说,所有这些都失败了。
1) 实施 ITest
我在这里和这里发现了这个
一旦我输入@Test方法,我就设置我想要的名字(对于我尝试过的所有3种方式,这就是我设置名称的方式)。此名称从 getTestName() 返回。我观察到的是getTestName()在我@Test之前和之后被调用。最初,它返回null(为了处理NullPointerException,我返回“”而不是null),后来它返回正确的值。但我没有看到这反映在报告中
编辑:还尝试按照artdanil的建议设置名称from@BeforeMethod
2 和 3
两者都基于上面第二个链接中给出的解决方案
通过在XmlSuite中重写setName,我得到了
Exception in thread "main" java.lang.AssertionError: l should not be null
at org.testng.ClassMethodMap.removeAndCheckIfLast(ClassMethodMap.java:58)
at org.testng.internal.TestMethodWorker.invokeAfterClassMethods(TestMethodWorker.java:208)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:114)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
...
通过覆盖string(),我在日志中看到这些(带有我的注释),但在报告中没有更新
[2013-03-05 14:53:22,174] (Main.java:30) - calling execute
[2013-03-05 14:53:22,346] GenericFunctionTest.<init>(GenericFunctionTest.java:52) - inside constructor
[2013-03-05 14:53:22,372] GenericFunctionTest.toString(GenericFunctionTest.java:276) - returning **//this followed by 3 invocations before arriving at @Test method**
[2013-03-05 14:53:22,410] GenericFunctionTest.toString(GenericFunctionTest.java:276) - returning
[2013-03-05 14:53:22,416] GenericFunctionTest.toString(GenericFunctionTest.java:276) - returning
[2013-03-05 14:53:22,455] GenericFunctionTest.toString(GenericFunctionTest.java:276) - returning
[2013-03-05 14:53:22,892] GenericFunctionTest.<init>(GenericFunctionTest.java:52) - inside constructor
[2013-03-05 14:53:23,178] GenericFunctionTest.toString(GenericFunctionTest.java:276) - returning **//again blank as i havent set it yet**
[2013-03-05 14:53:23,182] GenericFunctionTest.getResult(GenericFunctionTest.java:69) - inside with test case:TestCase{signature=Signature{...}}**//I am setting it immedietely after this**
[2013-03-05 14:53:23,293] GenericFunctionTest.toString(GenericFunctionTest.java:276) - returning MyMethodName **//What i want**
[2013-03-05 14:53:23,299] GenericFunctionTest.toString(GenericFunctionTest.java:276) - returning MyMethodName **// again**
编辑:通过硬编码值而不是在我的测试方法的输入中设置它来再次尝试所有3。但结果相同