2017-03-03 10 views
1

Antビルドツールからすべてのtestngテストケースを実行しています。すべての設定が完了し、ANTツールを使用して実行でき、レポートを生成できます。ここに問題があります: すべてのテストケースを実行している間に、彼らはSystem.getEnv("ABC_HOME")を使用して環境変数を読み取ります。ここで私のテストケースはすべて失敗しているか、失敗した設定のためにスキップされています。ANTビルドツールでシステム変数を設定し、Syste.getEnv( "ABC_HOME")を使用してJavaで読み込みます。

私は、複数のポストを見ましたが、それらのどれも私のために動作しません:

  1. 設定する方法: システム変数の設定http://testng.org/doc/ant.html

  2. How to read in arguments passed via ant to testng.xml

  3. がどのようにすべてのテストケースを制御しますそれらをANTツールから実行します。 How do I control which tests to run in testng from ant?

  4. このリンクは機能しません:システム変数を設定するには How to set an env variable in Ant build.xml

私の設定は以下の通りです。私が間違っているなら、私を修正してください:

<taskdef resource="testngtasks" classpath="${unitTest.lib.dir}/testng.jar"/> 


    <target name="runUnittests" depends="unitTestCompile"> 
     <property name="ABC_HOME" value="${base.dir}"/> 
     <testng delegatecommandsystemproperties="true" classpathref="unitTest.classpath" 
     outputDir="${testng.report.dir}" workingDir="${unitTest.src.dir}" haltOnfailure="true"> 
     <sysproperty key="property" value="${BLUEOPTIMA_HOME}"/> 
     <xmlfileset dir="${unitTest.suites.dir}" includes="testng.xml"/> 
     </testng> 
    </target> 

Everyctime変数ABC_HOMEのための私のJavaコードを見て、それがその環境変数を見つけることができませんし、すべてのテストケースは、OTはスキップ失敗しています。 ANTツールでenv変数を使用してセットアップしていますが、いずれも機能していません。これを見ていただけますか?

答えて

3

コードでは、代わりにSystem.getProperty("ABC_HOME")を使用してください。

あなたは、あなたが行うことができ、コードを変更できない場合:

<target name="runUnittests" depends="unitTestCompile"> 
    <property name="ABC_HOME" value="${base.dir}"/> 
    <testng fork="yes" delegatecommandsystemproperties="true" classpathref="unitTest.classpath" 
    outputDir="${testng.report.dir}" workingDir="${unitTest.src.dir}" haltOnfailure="true"> 
    <env key="property" value="${BLUEOPTIMA_HOME}"/> 
    <xmlfileset dir="${unitTest.suites.dir}" includes="testng.xml"/> 
    </testng> 
</target> 
+0

私は単体テストのコードを変更することはできません...私は、環境変数として設定することができます方法はありますか? – shiva

+0

@shiva Answer – juherr

+0

これは本当に感謝していますが、この解決策は私のためには機能しません。理由は分かりません。 – shiva

関連する問題