Gradle - Thử nghiệm
Nhiệm vụ kiểm tra tự động phát hiện và thực hiện tất cả các kiểm thử đơn vị trong tập nguồn kiểm tra. Nó cũng tạo ra một báo cáo sau khi thực hiện kiểm tra hoàn tất. JUnit và TestNG là các API được hỗ trợ.
Nhiệm vụ kiểm tra cung cấp một Test.getDebug()phương thức có thể được đặt để khởi chạy để làm cho JVM chờ trình gỡ lỗi. Trước khi tiếp tục thực thi, nó đặt bài viết của trình gỡ lỗi thành5005.
Kiểm tra phát hiện
Các Test Taskphát hiện lớp nào là lớp thử nghiệm bằng cách kiểm tra các lớp thử nghiệm đã biên dịch. Theo mặc định, nó quét tất cả các tệp .class. Bạn có thể đặt bao gồm / loại trừ tùy chỉnh, chỉ những lớp đó mới được quét. Tùy thuộc vào khung kiểm tra được sử dụng (JUnit / TestNG), việc phát hiện lớp kiểm tra sử dụng các tiêu chí khác nhau.
Khi sử dụng JUnit, chúng tôi quét cả hai lớp thử nghiệm JUnit 3 và 4. Nếu bất kỳ tiêu chí nào sau đây khớp, lớp đó được coi là lớp thử nghiệm JUnit -
- Lớp hoặc siêu lớp mở rộng TestCase hoặc GroovyTestCase
- Lớp hoặc siêu lớp được chú thích bằng @RunWith
- Lớp hoặc siêu lớp chứa một phương thức được chú thích bằng @Test
- Khi sử dụng TestNG, chúng tôi quét các phương pháp được chú thích bằng @Test
Note- Các lớp trừu tượng không được thực thi. Gradle cũng quét cây kế thừa thành các tệp jar trên đường dẫn thử nghiệm.
Nếu bạn không muốn sử dụng tính năng phát hiện lớp kiểm tra, bạn có thể tắt nó bằng cách cài đặt scanForTestClasses thành sai.
Nhóm thử nghiệm
JUnit và TestNG cho phép phân nhóm các phương pháp thử nghiệm phức tạp. Để phân nhóm, các lớp và phương pháp kiểm tra JUnit JUnit 4.8 giới thiệu khái niệm về các danh mục. Tác vụ kiểm tra cho phép đặc tả các danh mục JUnit mà bạn muốn bao gồm và loại trừ.
Bạn có thể sử dụng đoạn mã sau trong tệp build.gradle để nhóm các phương pháp kiểm tra.
test {
useJUnit {
includeCategories 'org.gradle.junit.CategoryA'
excludeCategories 'org.gradle.junit.CategoryB'
}
}
Bao gồm và loại trừ các thử nghiệm cụ thể
Các Test lớp học có một include và excludephương pháp. Những phương pháp này có thể được sử dụng để chỉ định, những thử nghiệm nào thực sự nên được chạy.
Chỉ chạy các bài kiểm tra được bao gồm -
test {
include '**my.package.name/*'
}
Bỏ qua các bài kiểm tra bị loại trừ -
test {
exclude '**my.package.name/*'
}
Mẫu build.gradle như hình bên dưới nó hiển thị các tùy chọn cấu hình khác nhau.
apply plugin: 'java' // adds 'test' task
test {
// enable TestNG support (default is JUnit)
useTestNG()
// set a system property for the test JVM(s)
systemProperty 'some.prop', 'value'
// explicitly include or exclude tests
include 'org/foo/**'
exclude 'org/boo/**'
// show standard out and standard error of the test JVM(s) on the console
testLogging.showStandardStreams = true
// set heap size for the test JVM(s)
minHeapSize = "128m"
maxHeapSize = "512m"
// set JVM arguments for the test JVM(s)
jvmArgs '-XX:MaxPermSize=256m'
// listen to events in the test execution lifecycle
beforeTest {
descriptor → logger.lifecycle("Running test: " + descriptor)
}
// listen to standard out and standard error of the test JVM(s)
onOutput {
descriptor, event → logger.lifecycle
("Test: " + descriptor + " produced standard out/err: "
+ event.message )
}
}
Bạn có thể sử dụng cú pháp lệnh sau để thực hiện một số tác vụ kiểm tra.
gradle <someTestTask> --debug-jvm