Mam dwa projekty, projekt A i projekt B. Oba są napisane w stylu groovy i używają gradle jako systemu kompilacji.
Projekt A wymaga projektu B. Dotyczy to zarówno kodu kompilacyjnego, jak i testowego.
Jak mogę skonfigurować, aby klasy testowe projektu A miały dostęp do klas testowych projektu B?
testing
build
automated-tests
dependency-management
gradle
Dr Simon Harrer
źródło
źródło
Odpowiedzi:
Możesz udostępnić klasy testowe za pomocą konfiguracji „testy”, a następnie zdefiniować zależność testCompile od tej konfiguracji.
Mam ten blok dla wszystkich projektów java, który zawiera cały kod testowy:
Następnie, gdy mam kod testowy, chcę uzyskać dostęp między projektami, których używam
To jest dla Java; Zakładam, że powinno to działać również w przypadku groovy.
źródło
configurations { tests { extendsFrom testRuntime } }
Could not get unknown property 'testClasses'
To prostsze rozwiązanie, które nie wymaga pośredniego pliku jar:
Jest więcej dyskusji w tym pytaniu: Zależności testów wieloprojektowych z gradle
źródło
To działa dla mnie (Java)
źródło
Powyższe rozwiązanie działa, ale nie w najnowszej wersji
1.0-rc3
Gradle.źródło
Jeśli ProjectA zawiera kod testowy, którego chcesz użyć w ProjectB, a ProjectB chce użyć artefaktów, aby dołączyć kod testowy, plik build.gradle ProjectB wyglądałby tak:
Następnie musisz dodać
archives
polecenie doartifacts
sekcji w pliku build.gradle ProjectA:Teraz, kiedy artefakty ProjectA zostaną opublikowane w twojej wytwórni , będą zawierać słoik -tests . Ten jar -tests można następnie dodać jako zależność testCompile dla ProjectB (jak pokazano powyżej).
źródło
Dla Gradle
1.5
źródło
W przypadku Androida w najnowszej wersji Gradle (obecnie jestem w wersji 2.14.1) wystarczy dodać poniżej w projekcie B, aby uzyskać wszystkie zależności testowe z projektu A.
źródło