Запуск одного теста из командной строки Gradle - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть многопроектная настройка Gradle

RootProject
     |
     ---- ProjectA
     |
     ---- ProjectB

ProjectA содержит около 500 юнит-тестов.Из которых 3 терпят неудачу в одном классе MyClass.

Каждый раз, когда я делаю:

./gradlew :ProjectA:test

, он запускает все 500 юнит-тестов.

Я пытаюсь запустить один неудачный тест внутри MyClass или, по крайней мере, только тесты, содержащиеся в MyClass, чтобы сократить время сборки.

Я пытался:

./gradlew -D:MyProject:test.single=MyClass --no-rebuild :MyProject:test

Тем не менее, он все еще продолжает запускать все тесты.

Попытка этого работает

./gradlew :MyProject:test --tests '*MyClass*'

, но все равно занимает много времени, так как кажется, что анализируются имена каждого класса теста, чтобы найтисоответствующее имя.

Попытка

./gradlew :MyProject:test --tests "com.mypackage1.mypackage2.MyClass.testMethod1"

выдает следующую ошибку:

> No tests found for given includes: [**/*SomeTest.class](exclude rules) [com.mypackage1.mypackage2.MyClass.testMethod1](--tests filter)

Чего мне не хватает?Что я делаю не так?

Это простой пример использования, который должен быть совершенно очевиден.

Редактировать 1:

RootProject build.gradle имеет:

configure(subprojects.findAll {it.name != 'SomeProjToIgnore'}) {
test {
    forkEvery 1       

    //Exclude tests
    exclude '**/*SomeTest.class'
}
}

Редактировать 2:

./gradlew :MyProject:test --tests 'MyClass*'

значительно быстрее.(уведомление убрано '*' спереди).Но все же я не знаю, как запустить один тест внутри MyClass.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...