Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TestNG中包含的组定义和方法是否相互排斥?_Java_Testng - Fatal编程技术网

Java TestNG中包含的组定义和方法是否相互排斥?

Java TestNG中包含的组定义和方法是否相互排斥?,java,testng,Java,Testng,TestNG.XML文件中包含的组定义和方法是否相互排斥 我想按照特定的顺序测试测试类的方法,因为它们相互依赖。例如,第一个方法将实体保存到数据库中,第二个方法检查数据库表的唯一约束是否有效。测试使用预期的异常标记进行注释 现在,我只想测试一组测试。我已经用一个组注释db注释了所有的测试。但是,TestNG仍然执行这些测试,因为它们在要包含的TestNG文件中被指定,我需要这样做才能以特定的顺序运行它们 你知道如何避开这个问题吗?我通过注释掉我不想执行的测试来解决这个问题,但这很乏味 谢谢 &l

TestNG.XML文件中包含的组定义和方法是否相互排斥

我想按照特定的顺序测试测试类的方法,因为它们相互依赖。例如,第一个方法将实体保存到数据库中,第二个方法检查数据库表的唯一约束是否有效。测试使用预期的异常标记进行注释

现在,我只想测试一组测试。我已经用一个组注释db注释了所有的测试。但是,TestNG仍然执行这些测试,因为它们在要包含的TestNG文件中被指定,我需要这样做才能以特定的顺序运行它们

你知道如何避开这个问题吗?我通过注释掉我不想执行的测试来解决这个问题,但这很乏味

谢谢

<suite name="xxx_war_1.0-SNAPSHOT" allow-return-values="true">
<test name="PersistenceTestSuite">
    <groups>
    <run>
        <exclude name="testdata" />
        <include name="db" />
    </run>
</groups>
    <classes>
        <class name="xxx.test.TestdataCreator">
           <methods>
                <include name="createTestdata"/>
            </methods>
        </class>
        <class name="xxx.test.ConnectionProviderTest">
            <methods>
                <include name="testGetConnection"/>
                <include name="testTwoConnectionsNotEqual"/>
                <include name="testCloseConnection"/>
            </methods>
        </class>
[...]

public class ConnectionProviderTest {

private Connection connection;

public ConnectionProviderTest() {
}

@Test(groups = "db")
public void testGetConnection() throws UserFriendlySQLException {

    this.connection = ConnectionProvider.getConnection();

    Assert.assertNotNull(this.connection);

} [...]

可以使用@Test annotation的priority/dependsOnGroups/dependsOnMethods属性来维护方法执行的顺序。因此,现在您可以使用组功能来包括或排除测试。您只需要根据功能需求对测试进行分组。
请接受此答案,让我知道这是否有助于您。

除了包含的3个方法之外,您的ConnectionProviderTest类中还有其他方法吗?没有,这些都是方法。谢谢!将来将使用注释dependson方法。