Witam,
Używam Gradle-a do budowania projektu. W standardowym przypadku aby uruchomić testy mogę wpisać komendę ./gradlew test
- wtedy powinny uruchomić się wszystkie testy (mój przypadek nie jest tak do końca standardowy i działa to trochę inaczej ale na potrzeby tej dyskusji możemy przyjąć takie domyślne założenie). Mogę również użyć komendy ./gradlew test --tests "[konkretny test lub konkretny zbiór testów]"
- wtedy uruchomią się tylko te testy które chcę (zazwyczaj jeden lub wiele testów z jednej klasy). Moje pytanie brzmi: czy można z poziomu pliku build.gradle
rozpoznać czy została użyta opcja --tests
?
Po co mi to? Generalnie chciałbym podzielić testy na dwie grupy: na potrzeby tego posta niech to będzie grupa A i B. Ponadto chciałbym, żeby testy z grupy A uruchamiały się po użyciu komendy ./gradlew test
a testy z grupy B po użyciu innej komendy (na potrzeby tego posta niech to będzie komenda ./gradlew testB
).
Udało mi się zmodyfikować plik build.gradle
do postaci, w której mogę zdecydować, którą grupę testów uruchomić. Moje rozwiązanie polega na tym, że w domyślnym przypadku testy z grupy B są na liście testów ignorowanych. W przypadku gdy wydam komendę mającą na celu uruchomienie testów z grupy B lista testów ignorowanych się zmienia i uruchamiają się właściwe testy.
Generalnie wszystko działa tylko nie do końca dobrze pracuje mi się z testami z poziomu IDE. Czasem potrzebuje uruchomić test z grupy B za pomocą kliknięcia przycisku "play" z poziomu IDE. Wtedy InteliJ uruchamia polecenie ./gradlew test --tests "[konkretny test lub konkretny zbiór testów]"
. Jednak z racji tego, że taki test jest na liście ignorowanych dostaje komunikat No tests found for given includes
.
Gdybym potrafił rozpoznać czy została użyta opcja --test
to bym w takim przypadku nie dodawał testów z grupy B do listy testów ignorowanych i wszystko by działało tak jak chce zarówno z poziomu konsoli jak i IDE.