0

Webdriver を使用して UI テストを実行するための次のスイート xml があります。

 <suite name="test suite" verbose="3" parallel="classes" thread-count="2">

<test name="extended_smoke_test_suite">
    <listeners>
        <listener
            ...
        </listener>
    </listeners>   
    <groups>
        <run>
            <include name="somegroup1" />
            <include name="somegroup2" />
        </run>
    </groups>
    <packages>
           <package name="tests.*" ></package>
    </packages>
</test>

このスイートを実行すると、いくつかのブラウザー (2 つ以上) が起動し、そのうちの 2 つだけでしか機能しないことがわかります。いくつかのテスト クラス (TestClass1) を開始し、テスト メソッドの 1 つを実行してから、別のクラス (TestClass2) に切り替えるように見えます。TestClass2 でテスト メソッドを完了した後、TestClass1 に戻って続行します。多くのテスト クラスがあるため、複数のブラウザが開かれます。

TestClass1 からすべてのテストを実行するように TestNG を「言う」方法はありますか?その後、次のテストに切り替えます。そのため、現在開いているアクティブなブラウザーは 2 つだけです。

4

2 に答える 2

0

テストを並行して実行するように TestNG 構成をセットアップしました。

<suite name="test suite" verbose="3" parallel="classes" thread-count="2">

TestClass1 と TestClass2 の 2 つのクラスしかない場合、TestNG は 2 つのスレッドを作成し、一方のスレッドで TestClass1 からテストを呼び出し、もう一方のスレッドで TestClass2 からテストを呼び出します。

TestClass1 の後に TestClass2 を実行する場合は、いくつかのオプションがあります。

1. TestClass1 に依存するクラス TestClass2 を作成します。ここには複数のオプションがあるため、TestNG ドキュメントの依存関係セクションを参照してください。

2.並列属性を設定thread-count="1"およびparallel="false"(または削除)します。preserve-order="false"また、xml の TestClass1 の後に TestClass2がないことを確認してください。

<test name="extended_smoke_test_suite">
    <classes>
        <class name="test.TestClass1"/>
        <class name="test.TestClass2"/>
    </classes>
</test>
于 2012-09-12T20:41:44.843 に答える
0

Maven Surefireプラグインの方向で調査する必要があるこの問題を解決するように思えます。現在、ビルド時にテストスイートを除外するために使用しています。

私のローカルモジュールのpom.xml

 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.11</version>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.surefire</groupId>
                        <artifactId>surefire-junit47</artifactId>
                        <version>2.12</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <!--<includes>-->
                        <!--<include>**/*.class</include>-->
                    <!--</includes>-->
                    <excludedGroups>com.exadel.rms.selenium.SeleniumTests</excludedGroups>

                </configuration>
            </plugin>

テストクラスに注釈を付けて除外します

 @Category(SeleniumTests.class)
    public class HomePageTestSuite extends BaseSeleniumTest {
............

そして、あなたが写真で見ることができる全体の構造: ここに画像の説明を入力

実際、ここでいくつかの有用な情報を得ることができます

こちらのトピックもご覧ください。Prolly も役に立ちます: JUnit: これはできますか (すべきですか)?

これがお役に立てば幸いです)

于 2012-09-12T12:35:39.473 に答える