我正在使用诱惑V1.4.8 TestNG.看起来TestNG适配器错误地将@AfterMethod放在报告中 – 基本上它将AfterMethod从测试用例放入下一个测试用例. 这是简单的代码: @Step("a test1") @Test public void Test1()
这是简单的代码:
@Step("a test1") @Test public void Test1(){ } @Step("a test2") @Test public void Test2(){ } @Step("before method") @BeforeMethod public void beforeMethod(){ } @Step("after method") @AfterMethod public void methodCleanup() { }
以下是生成的报告:
<test-cases> <test-case start="1424347388060" stop="1424347388730" status="passed"> <name>Test1</name> <steps> <step start="1424347388011" stop="1424347388014" status="passed"> <name>before</name> <title>before test</title> <attachments/> <steps/> </step> <step start="1424347388036" stop="1424347388036" status="passed"> <name>beforeMethod</name> <title>before method</title> <attachments/> <steps/> </step> <step start="1424347388067" stop="1424347388067" status="passed"> <name>Test1</name> <title>a test1</title> <attachments/> <steps/> </step> </steps> <labels> <label name="host" value=""/> <label name="thread" value=""/> </labels> </test-case> <test-case start="1424347388747" stop="1424347389056" status="passed"> <name>Test2</name> <steps> <step start="1424347388739" stop="1424347388739" status="passed"> <name>methodCleanup</name> <title>after method</title> <attachments/> <steps/> </step> <step start="1424347388746" stop="1424347388746" status="passed"> <name>beforeMethod</name> <title>before method</title> <attachments/> <steps/> </step> <step start="1424347388750" stop="1424347388750" status="passed"> <name>Test2</name> <title>a test2</title> <attachments/> <steps/> </step> </steps> </test-case> </test-cases>这是TestNG适配器的问题.在我们的适配器中,我们使用 ITestListener监听器和onTestSuccess,onTestFailure,onTestFailedButWithinSuccessPercentage和onTestSkipped方法将测试标记为已完成.但TestNG在@AfterMethod之前调用方法.
我不知道有没有办法处理前后(也许我们可以使用其他听众,例如IInvokedMethodListener).您可以调查此问题并向我们发送拉取请求.
希望能帮助到你
更新
新的Allure TestNG集成支持测试夹具.所以你需要升级到Allure 2.有关详细信息,请参阅文档https://docs.qameta.io/allure/2.0/#_testng