Ich habe eine große TestNG-Suite, die über 'Test' Aufgabe in Gradle aufgerufen wird. Die Suite läuft gut, aber ich habe Schwierigkeiten, Gradle nach der Information für die Testsuite zu fragen. Insbesondere die Listen der Einschluss- und Ausschlussgruppen.Getting leer TestNG Gruppenlisten in Gradle
Meine Gruppenkonfiguration in meinem testng.xml sieht wie folgt aus etwas:
<groups>
<run>
<exclude name="notReady" />
</run>
</groups>
Mein Ziel ist es, ein Mittel bereitzustellen für den Benutzer/angeben, umfassen ausschließen Gruppen zur Laufzeit Befehlszeileneigenschaften verwenden, und fügen Sie dann sie zu den entsprechenden Listen in der Testng-Konfiguration. Der einzige Haken ist, dass ich die vorhandene include/exclude-Konfiguration in der Datei testng.xml berücksichtigen muss.
Hier ist ein kurzes build.gradle Beispiel dafür, was ich versuche, in meinem Aufgabenblock (den Code einfach zu halten Parsen minus die Befehlszeile) zu tun:
test {
useTestNG() {
suites("src/test/resources/testng.xml")
Set<String> excludeGroups = getExcludeGroups() // Returns an empty set
excludeGroups.add("someOtherGroup")
setExcludeGroups(excludeGroups)
}
}
Ich würde excludeGroups erwarten sein [ 'notReady'], aber stattdessen bekomme ich einen leeren Satz zurück. Das Gleiche passiert mit getIncludeGroups(). Ich vermute, das liegt daran, dass suites() die XML-Datei (en) nicht lädt und analysiert, wenn sie aufgerufen wird, aber ich habe keine Beweise dafür.
Ich habe über die TestNGOptions-Dokumente geforscht, aber ich bin mir nicht sicher, ob ich etwas falsch mache oder ob das nur das erwartete Verhalten ist. Offensichtlich kann ich das Problem umgehen, indem ich meine Standard-Include-/Exclude-Listen in build.gradle anstelle von testng.xml definiere, aber das fühlt sich irgendwie klobig an. Wenn jemand für mich etwas Licht darauf werfen könnte, wäre es sehr geschätzt.
Danke,
Andy