Gradle - Test
Test görevi, test kaynak kümesindeki tüm birim testlerini otomatik olarak algılar ve yürütür. Ayrıca, testin yürütülmesi tamamlandığında bir rapor oluşturur. JUnit ve TestNG desteklenen API'lerdir.
Test görevi, Test.getDebug()JVM'nin bir hata ayıklayıcıyı beklemesi için başlatılacak şekilde ayarlanabilen yöntem. Yürütmeye geçmeden önce, hata ayıklayıcı gönderisini şu şekilde ayarlar:5005.
Test Algılama
Test Taskderlenen test sınıflarını inceleyerek hangi sınıfların test sınıfları olduğunu algılar. Varsayılan olarak tüm .class dosyalarını tarar. Özel dahil etme / hariç tutma ayarlayabilirsiniz, yalnızca bu sınıflar taranacaktır. Kullanılan test çerçevesine (JUnit / TestNG) bağlı olarak, test sınıfı algılama farklı kriterler kullanır.
JUnit kullanırken, hem JUnit 3 hem de 4 test sınıflarını tarıyoruz. Aşağıdaki kriterlerden herhangi biri eşleşirse, sınıf bir JUnit test sınıfı olarak kabul edilir -
- Sınıf veya süper sınıf, TestCase veya GroovyTestCase'i genişletir
- Sınıf veya bir süper sınıfa @RunWith ile açıklama eklenir
- Sınıf veya bir süper sınıf, @Test ile açıklanmış bir yöntem içerir
- TestNG kullanırken, @Test ile açıklanmış yöntemleri tararız
Note- Soyut sınıflar çalıştırılmaz. Gradle ayrıca miras ağacını test sınıf yolunda jar dosyalarına tarar.
Test sınıfı algılamayı kullanmak istemiyorsanız, ayarlayarak devre dışı bırakabilirsiniz. scanForTestClasses yanlış.
Test Gruplaması
JUnit ve TestNG, karmaşık test yöntemlerinin gruplandırılmasına izin verir. Gruplama için, JUnit test sınıfları ve yöntemleri JUnit 4.8, kategori kavramını sunar. Test görevi, dahil etmek ve hariç tutmak istediğiniz JUnit kategorilerinin spesifikasyonuna izin verir.
Test yöntemlerini gruplamak için build.gradle dosyasında aşağıdaki kod parçacığını kullanabilirsiniz.
test {
useJUnit {
includeCategories 'org.gradle.junit.CategoryA'
excludeCategories 'org.gradle.junit.CategoryB'
}
}
Belirli Testleri Dahil Et ve Hariç Tut
Test sınıfta include ve excludeyöntem. Bu yöntemler, gerçekte hangi testlerin çalıştırılması gerektiğini belirlemek için kullanılabilir.
Yalnızca dahil edilen testleri çalıştırın -
test {
include '**my.package.name/*'
}
Hariç tutulan testleri atla -
test {
exclude '**my.package.name/*'
}
Örnek build.gradle dosyası aşağıda gösterildiği gibi farklı yapılandırma seçeneklerini gösterir.
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 )
}
}
Bazı test görevlerini yürütmek için aşağıdaki komut sözdizimini kullanabilirsiniz.
gradle <someTestTask> --debug-jvm