Как запустить набор тестов с помощью 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'  
}
ссылки:
