2017-12-28 18 views
0

Ich versuche, die folgenden 2 Tests parallel mit TestNG 6.13.1 und Gradle aus einem Android Studio 3.0-Projekt auszuführen.Ich kann Tests nicht parallel mit TestNG, Gradle und Android Studio ausführen

Hier ist meine testng.xml Datei

<?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> 

I Gradle TestNG Optionen versuche zu dokumentieren zu verwenden: Ich betreibe https://docs.gradle.org/current/dsl/org.gradle.api.tasks.testing.Test.html

: Die gradle Test api Dokumentation https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/testing/testng/TestNGOptions.html finden Sie unter folgende Aufgabe, die in meiner Build.Gradle-Datei Aufgabe real angegeben ist {

description = "real" 

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

}

Ich bin mit der obigen Aufgabe von Windows Terminal folgenden Befehl

gradlew real testinglibrary:testDebugUnitTest 

Mit diesen Einstellungen läuft den gleichen ‚Health Test‘ in 2 parallelen Threads. Daher dupliziert es den Ablauf des ersten gefundenen Tests. Danach wird SignIn Test in einem einzelnen Thread ausgeführt. Idealerweise sollte sowohl der HealthCheck Test als auch der SignIn Test in 2 Threads gleichzeitig gestartet werden und die Ausführung von HealthCheck Test NICHT duplizieren. Es scheint auch nicht Thread-Anzahl von testng.xml zu lesen, und deshalb habe ich es in der oben genannten Datei testng.xml auskommentiert. Ich habe auch aus max.parallelForks = 2 von build.gradle auskommentiert, da es keine Parallelisierung der Tests durchgeführt hat. Es sieht aus wie Testng Api in Gradle ist fehlerhaft.

Bitte führen Sie, wie eine Parallelisierung meiner appium Integration Tests mit TestNG, Gradle (nicht Maven) von einem Android Studio Test Automation Framework.

+0

das gleiche Problem Siehe hier https://stackoverflow.com/questions/46106378/how-to-use-existing-testng- suite-xml-file-and-set-thread-counts-programmatisch –

+0

Es scheint nicht das gleiche Problem zu sein. Ich möchte den Threadanzahlparameter nicht programmgesteuert übergeben. Für mich die GRADLE Task-Ausführung liest nicht die Thread-Anzahl entweder aus der Datei testng.xml oder GRADLE Befehl setThreadCount (#). Wenn ich die Datei "testng.xml" manuell durch einen Rechtsklick ausführe, werden die Parameter für die Anzahl der Threads weiterhin angezeigt und alle Tests werden seriell ausgeführt. Ich habe einen Fehler mit Testng geschlossen und ein Problem mit Android Studio-Team bezüglich dieses Problems geöffnet. – Parin

+0

> Wenn ich die Datei "testng.xml" manuell durch Rechtsklick ausführe, werden die Parameter für die Anzahl der Threads weiterhin angezeigt und alle Tests werden seriell ausgeführt. TestNG v13 und v13.1 haben einen Fehler, wenn Threads definiert in '' (bereits im Master-Zweig behoben, siehe GITHUB-1636). Umgehung: Verwenden Sie eine andere Testversion oder definieren Sie die Anzahl der Threads im '' Tag. – kool79

Antwort

0

Try

setParallel('tests') setThreadCount(2) und verwenden Sie entsprechende Einstellungen in XML entfernen nur

+0

Wie in meinem ursprünglichen Beitrag erwähnt - 'Es scheint auch nicht Thread-Anzahl von testng.xml und zu lesen Deshalb habe ich es in der Datei "testng.xml" oben kommentiert. – Parin

Verwandte Themen