Ich habe zwei Projekte, Projekt A und Projekt B. Beide sind in Groovy geschrieben und verwenden Gradle als Build-System.
Projekt A erfordert Projekt B. Dies gilt sowohl für den Kompilierungs- als auch für den Testcode.
Wie kann ich konfigurieren, dass die Testklassen von Projekt A Zugriff auf die Testklassen von Projekt B haben?
testing
build
automated-tests
dependency-management
gradle
Dr. Simon Harrer
quelle
quelle
Antworten:
Sie können die Testklassen über eine 'Test'-Konfiguration verfügbar machen und dann eine testCompile-Abhängigkeit von dieser Konfiguration definieren.
Ich habe diesen Block für alle Java-Projekte, der den gesamten Testcode enthält:
Wenn ich dann Testcode habe, möchte ich zwischen den von mir verwendeten Projekten zugreifen
Dies ist für Java; Ich gehe davon aus, dass es auch für Groovy funktionieren sollte.
quelle
configurations { tests { extendsFrom testRuntime } }
Could not get unknown property 'testClasses'
Dies ist eine einfachere Lösung, für die keine JAR-Zwischendatei erforderlich ist:
In dieser Frage wird mehr diskutiert: Testabhängigkeiten für mehrere Projekte mit Gradle
quelle
Das funktioniert bei mir (Java)
quelle
Die obige Lösung funktioniert, jedoch nicht für die neueste Version
1.0-rc3
von Gradle.quelle
Wenn ProjectA den Testcode enthält, den Sie in ProjectB verwenden möchten, und ProjectB Artefakte verwenden möchte, um den Testcode einzuschließen , sieht das build.gradle von ProjectB folgendermaßen aus:
Anschließend müssen Sie
archives
demartifacts
Abschnitt in build.gradle von ProjectA einen Befehl hinzufügen:Wenn die Artefakte von ProjectA in Ihrem Artefakt veröffentlicht werden, enthalten sie ein Testglas . Dieses -tests- JAR kann dann als testCompile-Abhängigkeit für ProjectB hinzugefügt werden (wie oben gezeigt).
quelle
Für Gradle
1.5
quelle
Für Android in der neuesten Gradle-Version (ich bin derzeit in 2.14.1) müssen Sie nur das Folgende in Projekt B hinzufügen, um alle Testabhängigkeiten von Projekt A zu erhalten.
quelle