2014-07-23 10 views
5

Wenn wir für unseren Test TestNG verwenden möchten wir haben so etwas schreiben:Warum müssen wir useTestNG() für Tests mit Gradle angeben?

dependencies { 
    compile project(':model') 
    testCompile 'org.testng:testng:6.8' 
} 

test.useTestNG() 

Aber bei der Verwendung von Spock wir geben nur die Abhängigkeit

dependencies { 
    compile project(':model') 
    testCompile 'org.spockframework:spock-core:0.7-groovy-2.0' 
} 

Warum wir angeben müssen test.useTestNG()?

Antwort

7

Spock-Tests werden über JUnit ausgeführt, was der Standardwert für Gradle ist. Alternativ können Tests über TestNG ausgeführt werden.

+0

Also test.useTestNG() wird verwendet, um das Standard-Gradle-Testframework zu ändern? Jetzt habe ich überprüft, dass es test.useJUnit() gibt, warum ist das nötig, wenn JUnit der Standard ist? – Xelian

+2

'useJUnit {...}' wird nur benötigt, wenn JUnit-spezifische Optionen konfiguriert werden müssen. 'useTestNG()' wird benötigt, um zu TestNG zu wechseln und um TestNG-spezifische Optionen zu konfigurieren. –

+1

Danke, aber ich werde mit dummen Fragen weitermachen (rot), wenn wir TestNG, JUnit und Spock gleichzeitig benutzen wollen? Wie kann ich Gradle mitteilen, sie zur gleichen Zeit zu verwenden, wenn ich useJunit, useTestNG schreibe, wird die zweite die letzte Konfiguration sein, die berücksichtigt wird? – Xelian