Kaip paleisti tik vieną bandymų klasę gradale

Aš esu naujas „Gradle“. Aš naudoju 1.10 laipsnį ir Ubuntu 13.

Noriu žinoti, ar yra kokių nors komandų atlikti tik vieną bandymų klasę, panašią į „testonly“ SBT.

268
19 марта '14 в 15:15 2014-03-19 15:15 ddarz4u yra nustatytas kovo 19, 14, 15:15 2014-03-19 15:15
@ 7 atsakymai

„Airborn“ atsakymas yra geras, kai naudojama viena bandymų klasė.

Naudodami kai kurias komandų eilutės parinktis, kurias galite rasti čia , galite tiesiog tai padaryti.

Nuo gradiento 1.10 versijos jis palaiko testų pasirinkimą naudojant bandymo filtrą . Pavyzdžiui

 apply plugin: 'java' test { filter { //specific test method includeTestsMatching "org.gradle.SomeTest.someSpecificFeature" //specific test method, use wildcard for packages includeTestsMatching "*SomeTest.someSpecificFeature" //specific test class includeTestsMatching "org.gradle.SomeTest" //specific test class, wildcard for packages includeTestsMatching "*.SomeTest" //all classes in package, recursively includeTestsMatching "com.gradle.tooling.*" //all integration tests, by naming convention includeTestsMatching "*IntegTest" //only ui tests from integration tests, by some naming convention includeTestsMatching "*IntegTest*ui" } } 

Jei naudojate daugiafunkcį aplinką (įprastą „Android“ naudojimo atvejį), patikrinkite šį atsakymą, nes argumentas „ --tests bus nepalaikomas ir gausite klaidos pranešimą.

323
17 июля '15 в 8:26 2015-07-17 08:26 atsakymą pateikė „ Maleen Abewardana “ liepos 15 d. 15:26 , 2015-07-17 08:26

Jei norite išbandyti vieną klasę arba naudoti regexp, galite atlikti gradle -Dtest.single=ClassUnderTestTest test , pvz., gradle -Dtest.single=ClassName*Test test , galite rasti daugiau filtravimo klasių pavyzdžių bandymams šioje nuorodos dalyje 23.12. Bandymas

158
19 марта '14 в 16:02 2014-03-19 16:02 atsakymą pateikė airborn, kovo 19, 14, 16:02 2014-03-19 16:02

Jei turite kelių modulių projektą:

Tarkime, kad jūsų modulio struktūra

 root-module -> a-module -> b-module 

ir bandymas (testToRun), kurį norite paleisti, yra b modulyje, kuriame yra visas kelias: com.xyz.b.module.TestClass.testToRun

Todėl, kaip domina bandymas b-modulyje, turėtumėte matyti b modulio užduotis.

 ./gradlew :b-module:tasks 

Pirmiau pateikta komanda išvardys visas užduotis, aprašytas b-modulyje. Idealiu atveju, jūs turėsite užduotį, vadinamą testu, kad atliktumėte modulio testus.

 ./gradlew :b-module:test 

Dabar jūs pasiekėte tašką, kad paleistumėte visus bandymus b modulyje, galiausiai, galite perduoti aukščiau minėtos užduoties parametrą, kad atliktumėte bandymus, atitinkančius tam tikrą kelio modelį

 ./gradlew :b-module:test --tests "com.xyz.b.module.TestClass.testToRun" 

Dabar, jei paleisite

./gradlew test --tests "com.xyz.b.module.TestClass.testToRun"

Jis atliks abiejų modulių a ir b bandymo užduotį, kuri gali sukelti gedimą, nes a-modulyje nėra nieko, kas atitiktų modelį.

72
11 июня '16 в 13:45 2016-06-11 13:45 Atsakymas yra suteiktas greperror Birželio 11, "16, 13:45 2016-06-11 13:45

Po daugelio svarstymų dirbau už mane:

gradle test --tests "abcMyTestFile.mySingleTest"

19
12 мая '18 в 1:30 2018-05-12 01:30 atsakymą pateikė Pratik Khadloya gegužės 12 d. 18 val. 1:30 2018-05-12 01:30

Atminkite, kad parinktis „-tests“ gali neveikti, jei turite skirtingas parinktis („Nežinoma komandinės eilutės parinktis - testai“ nepavyksta.) Šiuo atveju reikia nurodyti konkrečią bandymo užduotį (pvz., „TestProdReleaseUnitTest“ vietoj „test“)

9
01 авг. atsakymas duotas anagaf 01 rug . 2018-08-01 12:19 '18, 12:19 val. 2018-08-01 12:19

Žemiau yra komanda, skirta paleisti vieną bandymų klasę naudojant gradlew komandinę eilutę:

 gradlew.bat Connected**your bundleVariant**AndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.example.TestClass 

Toliau pateikiamas pavyzdys, kaip pradėti com.example.TestClass klasę su Variant_1 variantu:

 gradlew.bat ConnectedVariant_1AndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.example.TestClass 
0
05 дек. Atsakymą pateikė Naveenprasanth Duraisamy 05 Dec 2018-12-05 16:36 '18 at 4:36 pm 2018-12-05 16:36

Mano atveju „Eclipse Java“ kompiliatoriaus įspėjimai buvo nustatyti pernelyg aukšti, o „Eclipse“ neatpažino mano klasės kaip galiojančios vykdymui. Mano kompiliatoriaus nustatymų atnaujinimas nustatė problemą. Daugiau apie tai galite skaityti čia: anotacija-nonnull-ne-išspręsta

0
18 дек. atsakymas, kurį pateikė Greg 18 dec. 2018-12-18 20:51 '18 20:51 2018-12-18 20:51

Žr. Kitus klausimus, susijusius su arba Užduoti klausimą