首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当@BeforeTest方法失败时,为什么没有将它列在testng-efailed.xml中?

当@BeforeTest方法失败时,为什么没有将它列在testng-efailed.xml中?
EN

Stack Overflow用户
提问于 2021-07-07 20:14:40
回答 1查看 208关注 0票数 0

我使用的是maven和testng 6.14.3。

下面是我的代码结构:

testng.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<suite name="set-3" parallel="tests" thread-count="10">
    <listeners>
        <listener class-name="org.uncommons.reportng.HTMLReporter" />
    </listeners>

    <test name="Customer Tests">
        <groups>
            <run>
                <include name="abc"/>
            </run>
        </groups>
        <classes>
            <class name="apps.Test1_BeforeTest_Of_Test2"></class>
            <class name="apps.Test2"></class>
        </classes>
    </test>

</suite>

Test1_BeforeTest_Of_Test2.java

代码语言:javascript
复制
public class Test1_BeforeTest_Of_Test2{
@BeforeTest(groups = {"abc"})
    public void test1Method() throws Exception {
}
@AfterTest(groups={"abc"})
public void test1AfterMethod() throws Exception {
    }
}

Test2.java

代码语言:javascript
复制
public class Test2{
 @Test(groups = {"abc"})
    public void test2Method(){
    }
}

在我运行期间,Test1_BeforeTest_Of_Test2类失败。因此,Test2被标记为跳过。但是,当我查看在运行结束时生成的testng-failed.xml时,不包括/列出失败的@BeforeTest类(Test1_BeforeTest_Of_Test2):

testng-failed.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<suite thread-count="10" name="Failed suite [set-3]" parallel="tests">
  <listeners>
    <listener class-name="org.uncommons.reportng.HTMLReporter"/>
  </listeners>
  <test name="Customer Tests(failed)">
    <groups>
      <run>
        <include name="abc"/>
      </run>
    </groups>
    <classes>
      <class name="apps.Test2">
        <methods>
          <include name="test2Method"/>
        </methods>
      </class> 
    </classes>
  </test> 
</suite>

这是预期的行为吗?还是testng-failed.xml中的bug/gap?

理想情况下,当我们重新运行失败的测试时,我们希望@pre也会运行,因为它是Test 2的pre。

EN

回答 1

Stack Overflow用户

发布于 2021-07-08 05:06:42

TestNG目前似乎在遵守在testng-failed.xml中要考虑的配置,如果它在跳过的测试方法的测试类中的部分--即配置(这可能是导致测试被跳过的原因)--需要驻留在与您跳过的方法相同的java类中,以便TestNG考虑将其包括在内。

在您的示例中,情况并非如此,配置方法存在于不同的测试类中(这是完全有效的)。

在我看来,这就像是TestNG中的一个bug。

我已经代表您在TestNG项目上提交了一个bug,并将在即将发布的版本(7.5.0)中修复它。

缺陷:https://github.com/cbeust/testng/issues/2611

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68292525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档