2017-12-28 83 views
0

TestNG 6.13.1を使用して次の2つのテストを並行して実行しようとしています。ここでTestNG、gradle and android studioを使用して並行してテストを実行できない

は私が文書化GradleのTestNGのオプションを使用しようとしています私のtestng.xmlファイル

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="Default test suite"> 
    <!--parallel="methods" thread-count="4">--> 
    <listeners> 
     <listener class-name="org.testng.reporters.XMLReporter"></listener> 
    </listeners> 
    <test name="SignIn Test" > 
     <classes> 
      <class name="com.android.testinglibrary.DeviceTesting.Appium.SignInTest"/> 
     </classes> 
    </test> 
    <test name="HealthCheck Test" > 
     <classes> 
      <class name="com.android.testinglibrary.DeviceTesting.Appium.HealthCheckTest"/> 
     </classes> 
    </test> 

</suite> 

です:https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/testing/testng/TestNGOptions.html のGradleテストAPIのドキュメントを見つけることができます: https://docs.gradle.org/current/dsl/org.gradle.api.tasks.testing.Test.html

私が実行しています私のbuild.gradleファイルに指定されているタスクの後に タスクreal {

description = "real" 

    tasks.withType(Test) { 
     useTestNG() { 
      //maxParallelForks = 2 
      options { 
       suites 'src/test/java/com/android/testinglibrary/DeviceTesting/Appium/testng.xml' 
       setParallel('tests') 
       setThreadCount(2) 
      } 
     } 
    } 

}

は、私はそれが2つの並列スレッドで同じ「ヘルスチェックテスト」を実行し、これらの設定で、次のコマンド

gradlew real testinglibrary:testDebugUnitTest 

を使用してWindows端末から上記のタスクを実行しています。したがって、それは発見された第1テストの実行を複製する。その後、シングルスレッドでSignIn Testを実行します。 理想的には、2つのスレッドで同時にHealthCheck TestとSignIn Testの両方を開始し、HealthCheck Testの実行を複製しないでください。 また、testng.xmlからスレッド数を読み取るようには見えないので、上記のtestng.xmlファイルでコメントアウトしています。 また、テストの並列化を行っていないので、// maxParallelForks = 2をbuild.gradleからコメントアウトしました。 gradle内のtestng apiがバグです。

私のappiumインテグレーションテストは、アンドロイドスタジオテストオートメーションフレームワークからTestNG、gradle(Mavenではない)を使用して並列化する方法を教えてください。

+0

がここhttps://stackoverflow.com/questions/46106378/how-to-use-existing-testng-同じ問題を参照してください。XMLに対応する設定を使用するようにしてくださいsuite-xml-file-and-set-thread-counts-programmatically –

+0

これは同じ問題ではないようです。スレッドカウントパラメータをプログラムで渡す必要はありません。私にとっては、gradleタスクの実行は、testng.xmlファイルから、またはgradleコマンドsetThreadCount(#)からスレッドカウントを読み取ることはありません。私が手動で右クリックしてtestng.xmlファイルを実行すると、スレッドカウントパラメータはまだ変化せず、すべてのテストが順番に実行されます。私はTestngのバグをクローズし、この問題に関してアンドロイドスタジオチームに問題を開いた。 – Parin

+0

>右クリックしてtestng.xmlファイルを手動で実行すると、スレッド数パラメータがまだigonresになり、すべてのテストが順番に実行されます。 ''で定義されたスレッド(すでにmasterブランチで修正されている、GITHUB-1636を参照)がTestNG v13とv13.1にバグを起こします。回避策は、別のtestngバージョンを使用するか、 ''タグにスレッド数を定義することです。 – kool79

答えて

0

setParallel('tests') setThreadCount(2) を削除し、のみ

+0

私のオリジナルポストで述べたように、 'testng.xmlからスレッドカウントを読み取ることもできません。それは私がtestng.xmlファイルの中で ' – Parin

関連する問題