3

私はTestNG 6.8.5を使用しています。単一のテスト内だけでなく、複数のテストにまたがる dependsOnGroups または dependsOnMethods にまたがる方法はありますか?

私は、2 つのテストとそれらの間の他のテストの束で、このように構成されたスイートを持っています。

<suite name="ConfigurationSuite">

    <test name="DeviceMgmtTest_Setup" >
        <classes>
            <class name="com.yay.DeviceMgmtTest">
                <methods>
                    <include name="createDevice" />
                    <include name="discoverDevice" />
                </methods>
            </class>
        </classes>
    </test>

    <!-- A whole bunch of other very sequential
         and long-running tests go here... -->

    <test name="DeviceMgmtTest_TearDown" >
        <classes>
            <class name="com.yay.DeviceMgmtTest">
                <methods>
                    <include name="deleteDevice" />
                </methods>
            </class>
        </classes>
    </test>

</suite>

私のテストクラスには、次のように構成されたメソッドがあります。

@Test(groups = { "setup" })
public void createDevice() {
    // do something
}

@Test(groups = { "setup" })
public void discoverDevice() {
    // do something
}

@Test(groups = { "tearDown" }, dependsOnGroups = { "setup" })
public void deleteDevice() {
    // When TestNG reaches this method I get a
    // group "setup" does not exist type exception (see below)
}

しかし、スイートを実行すると、dependsOnGroups アノテーションが次のようなエラーで失敗します。

[ERROR] org.testng.TestNGException:
[ERROR] DependencyMap::Method .... DeviceMgmtTest depends on nonexistent group "setup"

スイートの構成方法について正しく理解していない可能性があります (私は TestNG を初めて使用します) が、これらの関心領域を個別のテストに分けることは理にかなっています。

ガイダンスや提案をありがとう!

編集: 私が検討している解決策の 1 つは、TestNG ITestContext を取得して親スイートに移動し、前のテストのステータスを確認することです。もっと洗練された TestNG 規則があるかもしれないと思っただけです。

4

2 に答える 2

3

異なるクラスのメソッドに依存することはできません。

ただし、異なるクラスのグループに依存することは間違いなく可能です。XML を使用する場合は、次のドキュメントを参照してください: http://testng.org/doc/documentation-main.html#dependencies-in-xml

于 2013-08-20T21:19:11.943 に答える
1

あなたのサンプルコードが何であるかに基づいていると思います..必要なのは、セットアップとテストの後にティアダウンを実行することだけです。依存関係を完全にチャックして、preserve-order = true を使用してみてください。そのため、設定する必要さえありません。これがデフォルトであり、testng は xml で見つかった順序でテストを実行します。

于 2013-08-21T00:26:49.863 に答える