2017-08-18 1 views
1

Mein Projekt wie folgt aussieht:Fügen Tests von anderen Modul

├───module1-test-cases 
│ └───src 
│  └───test 
│   └───groovy 
│    └───specs 
│     └───module1test 
└───module2-test-cases 
    └───src 
     └───test 
      └───groovy 
       └───specs 
        └───module2test 

Es gibt eine Menge verschiedener Module ist, jedes Modul seine eigene build.gradle Datei hat, so kann ich Tests für einzelne Module

laufen Beispiel für build.gradle

dependencies{ 
    compile("org.codehaus.groovy:groovy-all:2.3.3") 
    compile project(":core") 
    compile("commons-codec:commons-codec:1.10") 
    testCompile("junit:junit:4.11") 
    testCompile project(":module2-test-cases") 
} 
test{ 
    exclude '**/smth/**' 
} 

I enthalten sein sollen Tests von anderen Modul so, wenn ich gradle Prüfaufgabe laufen läuft es alle Tests von aktuellen Modul und aus dem Modul i will.

Antwort

1

Wenn es sich um ein Multiprojekt handelt, führt die Ausführung von test auf dem Stamm alle Tests in allen Modulen aus.

Wenn Sie module1 Tests immer ausführen möchten, wenn Sie module2 Tests ausführen, können Sie sich auf die Testaufgabe verlassen.

in module1 build.gradle

test.dependsOn(':module2:test') 

das wird module2 test Aufgabe ausgeführt werden soll vor der Ausführung module1 test Aufgabe, und wenn Sie die Wurzel test Task ausgeführt wird sie nicht zweimal gehen laufen.

auch können Sie dependsOn innerhalb Ihrer Aufgabe setzen.

Gradle wird sich darum kümmern, dass die Testklassen ausgeführt werden. Die Testentdeckung (abhängig von Ihrer Projektstruktur und sourceSets) wird es für Sie tun.

+0

Wenn mindestens ein Test in ** fällt: Modul2: Test ** Ziel ** Test ** Aufgabe von ** Modul1 ** startet überhaupt nicht. Kann ich sie irgendwie einfach beide laufen lassen? – sann05

+0

@ sann05 dann möchten Sie die Tests ausführen, egal ob sie fehlschlagen oder nicht? Das ist das Standardverhalten, um den Build zu unterbrechen, wenn ein Test fehlschlägt. – LazerBanana

Verwandte Themen