Как запустить набор тестов с помощью gradle из командной строки
Я пытаюсь использовать gradle для запуска тестов со следующей командой, но она не работает
gradle cleanTest test --tests my.package.TestSuite
мой набор тестов выглядит следующим образом
@RunWith(Suite.class)
@Suite.SuiteClasses({
ATests.class,
BTests.class,
CTests.class
})
public class MySuite {
/* placeholder, use this to contain all integration tests in one spot * */
}
попытка выполнить следующую команду работает, но, к сожалению, она выполняет каждый тест дважды. один раз сам по себе, а затем снова под набором тестов в том же пространстве имен
gradle clean test --tests my.package.*
я мог бы просто бросить набор тестов и сделать это таким образом, но я хочу лучше понять, что здесь происходит и почему я не могу сказать, чтобы он напрямую запускал набор тестов.
1 ответов
следующее работает для меня локально.
gradle -Dtest.single=MySuite clean test
это фактически использует другой подход (включение теста) по сравнению с более продвинутым подходом фильтрации, используемым --test
.
как описано в ссылочной ссылке, пример выше работает путем создания шаблона включения файла формы **/MySuite*.class
, тогда как --test
пытается выбрать тесты из отсканированного набора тестов. Я подозреваю, что между общей фильтрацией тестов, реализованной в Gradle и конкретные случаи вокруг JUnit Suite runner.
сказав это, даже документы Gradle предупреждают, что вышеупомянутый подход заменен, и на самом деле я, вероятно, повторил бы комментарий @Opal и определил явную задачу для запуска наборов для данного этапа тестирования. Например, следующий запуск с gradle clean testSuite
может запустить пакет интеграции.
task testSuite(type: Test) {
include 'MySuite.class'
}
ссылки: