Tôi muốn thực hiện gradle build
mà không thực hiện các bài kiểm tra đơn vị. Tôi đã thử:
$ gradle -Dskip.tests build
Điều đó dường như không làm gì cả. Có một số lệnh khác tôi có thể sử dụng?
-DskipTests
dành cho Maven
Tôi muốn thực hiện gradle build
mà không thực hiện các bài kiểm tra đơn vị. Tôi đã thử:
$ gradle -Dskip.tests build
Điều đó dường như không làm gì cả. Có một số lệnh khác tôi có thể sử dụng?
-DskipTests
dành cho Maven
Câu trả lời:
Bạn nên sử dụng -x
đối số dòng lệnh loại trừ bất kỳ tác vụ nào.
Thử:
gradle build -x test
Cập nhật:
Liên kết trong nhận xét của Peter đã thay đổi. Dưới đây là sơ đồ từ hướng dẫn của người dùng Gradle
-x integTest
, v.v., vì vậy không tiện lợi như chăn của Maven -DskipTests
.
run
tôi có thể thấy hiệu quả của chương trình Hello của tôi. Nhưng tôi nghĩ rằng nó đang biên dịch lại mọi thứ. Tôi chỉ muốn thực hiện chương trình java.
Thử:
gradle assemble
Để liệt kê tất cả các nhiệm vụ có sẵn cho dự án của bạn, hãy thử:
gradle tasks
CẬP NHẬT:
Điều này có vẻ không phải là câu trả lời đúng nhất lúc đầu, nhưng hãy đọc kỹ gradle tasks
tài liệu hoặc đầu ra.
Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
gradle assemble
sẽ không biên dịch các tệp chính. Nếu bạn làm việc trong việc kiểm tra đơn vị của bạn cố định thì bạn cần gradle assemble testClasses
- Tôi nghĩ rằng việc đặt tên nhiệm vụ xây dựng khá khó hiểu.
Câu trả lời được chấp nhận là câu trả lời đúng.
OTOH, cách tôi đã giải quyết trước đây là thêm các mục sau vào tất cả các dự án:
test.onlyIf { ! Boolean.getBoolean('skip.tests') }
Chạy bản dựng với -Dskip.tests=true
và tất cả các tác vụ kiểm tra sẽ bị bỏ qua.
Bạn có thể thêm các dòng sau vào build.gradle
, **/*
loại trừ tất cả các bài kiểm tra.
test {
exclude '**/*'
}
Bạn có thể loại trừ các nhiệm vụ
gradle build --exclude-task test
Để loại trừ bất kỳ tác vụ nào từ lớp, hãy sử dụng -x
tùy chọn dòng lệnh. Xem ví dụ dưới đây
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'
}
Đầu ra của: gradle -q dist -x runningTest
task compile
compile test
running distribution job
Hy vọng điều này sẽ cung cấp cho bạn cơ bản
cách khác nhau để vô hiệu hóa các tác vụ thử nghiệm trong dự án là:
tasks.withType(Test) {enabled = false}
hành vi này đôi khi cần thiết nếu bạn muốn vô hiệu hóa các thử nghiệm trong một dự án (hoặc nhóm dự án).
Cách này hoạt động cho tất cả các loại nhiệm vụ kiểm tra, không chỉ là java 'kiểm tra'. Ngoài ra, cách này là an toàn. Ý tôi là, hãy nói: bạn có một tập hợp các dự án bằng các ngôn ngữ khác nhau: nếu chúng tôi cố gắng thêm loại bản ghi này vào chính build.gradle
:
subprojects{
.......
tests.enabled=false
.......
}
chúng ta sẽ thất bại trong một dự án khi chúng ta không có nhiệm vụ gọi là kiểm tra
Sử dụng -x test
bỏ qua thực hiện kiểm tra nhưng điều này cũng loại trừ biên dịch mã kiểm tra.
gradle build -x test
Trong trường hợp của chúng tôi, chúng tôi có quy trình CI / CD trong đó một mục tiêu là biên dịch và mục tiêu tiếp theo là thử nghiệm (Xây dựng -> Kiểm tra).
Vì vậy, vì Build
mục tiêu đầu tiên của chúng tôi, chúng tôi muốn đảm bảo rằng toàn bộ dự án được biên dịch tốt. Đối với điều này, chúng tôi đã sử dụng:
./gradlew build testClasses -x test
Về mục tiêu tiếp theo, chúng tôi chỉ cần thực hiện các bài kiểm tra.
gradle build -x test --parallel
Nếu máy của bạn có nhiều lõi. Tuy nhiên, không nên sử dụng song song sạch.
Vui lòng thử điều này:
gradlew -DskipTests=true build
Trong Plugin 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.
Xây dựng lớp mà không cần kiểm tra, bạn có hai tùy chọn:
$ gradle assemble
$ gradle build -x test
nhưng nếu bạn muốn kiểm tra biên dịch:
$ gradle assemble testClasses
$ gradle testClasses