Я хочу виконати gradle build
без виконання одиничних тестів. Я намагався:
$ gradle -Dskip.tests build
Це, здається, нічого не робить. Чи є якась інша команда, яку я міг би використовувати?
-DskipTests
є для Maven
Я хочу виконати gradle build
без виконання одиничних тестів. Я намагався:
$ gradle -Dskip.tests build
Це, здається, нічого не робить. Чи є якась інша команда, яку я міг би використовувати?
-DskipTests
є для Maven
Відповіді:
Ви повинні використовувати -x
аргумент командного рядка, який виключає будь-яке завдання.
Спробуйте:
gradle build -x test
Оновлення:
Посилання в коментарі Петра змінилося. Ось схема з посібника користувача Gradle
-x integTest
І так далі, не так зручно, як ковдра Мейвена -DskipTests
.
run
я бачу ефект моєї програми Hello. Але я думаю, що це все знову збирається. Я хотів би лише виконати програму java.
Спробуйте:
gradle assemble
Щоб перерахувати всі доступні завдання для вашого проекту, спробуйте:
gradle tasks
ОНОВЛЕННЯ:
Спочатку це може здатися не найбільш правильною відповіддю, але уважно читайте gradle tasks
вихідні матеріали або документи.
Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
gradle assemble
не збиратиме основні файли. Якщо ви працюєте над тим, щоб виправити свій тестовий модуль, тоді вам потрібно gradle assemble testClasses
- я вважаю, що іменування завдань побудови є досить заплутаним.
Прийнята відповідь є правильною.
ОТО, я попередньо вирішив це, щоб додати наступне до всіх проектів:
test.onlyIf { ! Boolean.getBoolean('skip.tests') }
Запустіть збірку -Dskip.tests=true
і всі тестові завдання будуть пропущені.
Ви можете додати наступні рядки до build.gradle
, **/*
виключаючи всі тести.
test {
exclude '**/*'
}
Ви можете виключити завдання
gradle build --exclude-task test
Щоб виключити будь-яке завдання з gradle, використовуйте параметр -x
командного рядка. Дивіться приклад нижче
task compile << {
println 'task compile'
}
task compileTest(dependsOn: compile) << {
println 'compile test'
}
task runningTest(dependsOn: compileTest) << {
println 'running test'
}
task dist(dependsOn:[runningTest, compileTest, compile]) << {
println 'running distribution job'
}
Вихід: gradle -q dist -x runningTest
task compile
compile test
running distribution job
Сподіваюся, це дасть тобі основне
інший спосіб відключення тестових завдань у проекті:
tasks.withType(Test) {enabled = false}
така поведінка іноді потрібна, якщо ви хочете відключити тести в одному з проектів (або в групі проектів).
Цей спосіб працює на всі види тестових завдань, а не лише на тести Java. Також цей спосіб безпечний. Ось що я маю на увазі, скажімо: у вас є набір проектів різними мовами: якщо ми спробуємо додати такий тип запису в основному build.gradle
:
subprojects{
.......
tests.enabled=false
.......
}
ми не зможемо в проекті, якщо у нас не буде завдання, яке називається тестами
Використання -x test
пропускного тестового виконання, але це також виключає компіляцію тестового коду.
gradle build -x test
У нашому випадку у нас є процес CI / CD, де одна мета - компіляція, а наступна мета - тестування (Build -> Test).
Отже, для нашої першої Build
мети ми хотіли забезпечити, щоб весь проект склався добре. Для цього ми використали:
./gradlew build testClasses -x test
На наступну мету ми просто виконуємо тести.
gradle build -x test --parallel
Якщо ваша машина має кілька ядер. Однак не рекомендується використовувати паралельне чищення.
Спробуйте:
gradlew -DskipTests=true build
У плагіні Java :
$ gradle tasks
Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
testClasses - Assembles test classes.
Verification tasks
------------------
test - Runs the unit tests.
Збір Gradle без тесту у вас є два варіанти:
$ gradle assemble
$ gradle build -x test
але якщо ви хочете скласти тест:
$ gradle assemble testClasses
$ gradle testClasses