0

mvn コマンド ライン (Jenkins から) と Eclipse からのオンデマンドの両方から実行できる必要があるテスト スイート ファイルがあります。

テスト スイート ファイルには、パラメーターをサポートする機能が必要です。つまり、次のようになります。

<suite name="test run1">
   <parameter name="testEnv" value="dev"></parameter>
   <parameter name="proxyServer" value="x"></parameter>
   <parameter name="proxyPort" value="y"></parameter>

そのままにしておくと、テスト スイート ファイルの値がパラメーターをオーバーライドするため、mvn コマンド ライン パラメーターは機能しません。つまり、これは機能しません:

mvn test ... -dtestEnv=E1QA -dproxyServer= -dproxyPort=

Eclipse からのアドホック実行と mvn コマンド ライン実行の両方をサポートするようにテスト スイート ファイルを作成するにはどうすればよいですか?

4

3 に答える 3

0

構成可能なテスト プロパティが必要な場合は、スイート xml をハードコーディングする代わりに @DataProvider を使用します。

プロバイダー クラス:

public class EnvProvider {

    @DataProvider(name = "envProvider") 
    public static Object[][] createData() {
        return new Object[][] { new Object[] { 
           System.getProperty("testEnv", "eclipse-default") }
    };
}

試験方法:

@Test(dataProvider = "envProvider", dataProviderClass = EnvProvider.class)
public void myTest(String currentEnv) {
    System.out.println("Current env is : " + currentEnv);
}

pom.xml

<properties>
    <testEnv>default-pom</testEnv>
</properties>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <systemPropertyVariables>
                    <testEnv>${testEnv}</testEnv>
                </systemPropertyVariables>
                ...

日食の右クリックの結果

現在の環境は: eclipse-default

mvn テストの結果

現在の環境は: default-pom

mvn テストの結果-DtestEnv=jenkins

現在の環境は:ジェンキンス

参考文献: http://testng.org/doc/documentation-main.html#parameters-dataproviders

于 2016-01-18T07:40:43.303 に答える