0

Suite1、Suite2、Suite3 などのスイートがいくつかあります。@BeforeSuiteメソッドとメソッドを持つ CommonSuite という共通スイートもあり@AfterSuiteます。すべてのスイートが構成された testng.xml があり、maven フェイルセーフ プラグインを使用してテストを実行しています。すべて正常に動作します。

ここで私の質問は、Eclipse で TestNG プラグインを使用して Suite1だけを実行/デバッグしたい場合、CommonSuite も Suite1 と共に含まれていることを確認するにはどうすればよいですか? 私が知っている汚い方法の 1 つは、testng.xml で実行したくないすべてのスイートにコメントを付けて、CommonSuiteと Suite1 のみを保持し、TestNG スイートとして実行/デバッグできることです。ただし、これを行う正しい方法ではないようです。これを達成するための他のより良い方法はありますか?

4

1 に答える 1

1

これを行うための最良の方法は、スーツのlistnerクラスを実装してISuiteListenerを実装することです。

基本的なクラスは次のようになります

    public class PlatformSuite implements ISuiteListener { 

    /**
     * This method is invoked before the SuiteRunner starts.
     */
    public synchronized void onStart(ISuite suite) {
        /*Your before suite implementation here*/
    }

    /**
     * This method is invoked after the SuiteRunner has run all
     * the test suites.
     */

    public void onFinish(ISuite suite) {
         /*Your after suite implementation here*/
    }

}}

Eclipseプラグインの場合、testngxmalを「テンプレートXMLファイル」として指定できます。

testng.xmlでリスナーを開始するには、以下を追加できます。desableのデフォルトのリスナー設定を忘れないでください

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="DssTestSuite" parallel="false">
    <parameter name="useDefaultListeners" value="false"/>
    <listeners>
        <listener class-name="org.someonr.something.core.PlatformSuite"/>
    </listeners>
<test name="sample Test" parallel="false" verbose="2">
    <packages>
    </packages>
    <classes>         
    </classes>
</test>

この呼び出しは、各テストスイートの前と各テストスイートの後に呼び出されます

于 2012-10-25T12:14:04.407 に答える