2016-10-21 1 views
1

Проблема в том, что мы являемся магазином IntelliJ, а this issue был шипом в наших сторонах. Это в основном означает, что все должно быть в ./test/, чтобы работать. ./it/ неприемлемо, потому что IntelliJ выбирает его как источник неправильного источника каждый раз, когда вы пытаетесь что-либо сделать. Итак, как я могу отделить тесты интеграции от модульных тестов, чтобы их можно было запускать отдельно в Gradle, если они находятся в одном исходном наборе? У кого-нибудь есть пример?Как отделить тесты модуляции от тестов интеграции в одном и том же исходном наборе?

Мы используем соглашения об именах и *ITCase*.java, если это помогает. Оборотная вещь, о которой мы думали, - это использование аннотации JNnit @Category.

P.S. Пожалуйста, проголосуйте за this issue. Это будет шип в стороне от любого магазина IntelliJ, учитывая, что Gradle имеет интеграционные тесты в другом каталоге от модульных тестов.

ответ

0

Я не могу говорить с конфигурацией IntelliJ, но в build.gradle, если у вас есть:

test { 
    if (! project.hasProperty("ITCASE")) { 
     exclude "**/*ITCase*" 
    } 
} 

затем следующие параметры командной строки будет включать в себя интеграционные тесты:

gradle test -PITCASE=true 

затем и стандарт не будет их исключать:

gradle test 
+0

Как насчет наличия двух названных наборов источников для s ame только разные исключает/включает в себя: http://stackoverflow.com/questions/22209181/gradle-how-to-exclude-some-tests – user447607

+0

Это еще проще. Наша забота заключается не в том, когда что-то выполняется, так как это довольно быстро и даже хорошо распараллеливается. Это когда и если тесты будут запущены, так что это нормально, чтобы скомпилировать их одновременно с модульными тестами. При этом мне не нужен дополнительный источник. Все, что мне было нужно, - это дополнительная задача «Тип: Тест» с включенными и исключающими набор, как вы могли ожидать. Следуйте за этим с помощью check.dependsOn, и вы - стилин. – user447607

Смежные вопросы