JUnit 4 testini çalıştırmayı başardıktan sonra JUnit 5'i Gradle ile kullanmaya çalışıyorum.JUnit 5 Gradle ile nasıl kullanılır?
Beklenen sonuç: Vurguladığınız JUnit 4 test güzel çıktı ve build/reports/tests
yılında bir html raporunda 'geçti' verdi.
Gerçek sonucu: aşağıda JUnit 5 Test (...) build succesful
yanında değil çıkış şey ben çıkış geçti hiçbir test günlüğü olmadığından testi aslında çalışmaz biliyorum ederken// atlanır başarısız oldu ve bir fail
koyarak yapar Test yapıyı başarılı tutar.
Skipping task ':testClasses' as it has no actions.
çalışanı, çoğu çoğunlukla alakasız çıktılar verir. Hayret, aynı zamanda xml oluşturulmaz ise, html herhangi bir test çalıştırmak gösterir ve hiçbir hata ve test gerçekten koşmak değildir, Executing task ':test'
ve Generating HTML test report... Finished generating test html results
ve build/test-results/test
yılında xml için benzer söylüyor. Ayrıca çok ilginç düşünüyorum Ne
, benim tek bir test ben çok garip olduğunu düşünüyorum
fail("test fails");
taşıdığı sürece gradle test --debug
[TestEventLogger] Gradle Test Run :test STARTED
[org.gradle.api.internal.tasks.testing.junit.JUnitDetector] test-class-
scan : failed to scan parent class java/lang/Object, could not find the class file
[TestEventLogger]
[TestEventLogger] Gradle Test Run :test PASSED
vermesidir!
My inşa dosya Benim testtir
apply plugin: 'java'
test {
dependsOn 'cleanTest' // run tests every time
}
sourceSets {
main {
java {
srcDirs 'src'
}
}
test {
java {
srcDirs 'test'
}
}
}
repositories {
mavenCentral()
}
dependencies {
// when using this, it worked with a junit 4 test
// testCompile 'junit:junit:4.10'
// this should be needed for junit 5 (using M4 is required since IJ 2017.1.2
testCompile("org.junit.jupiter:junit-jupiter-api:5.0.0-M4")
}
test {
testLogging {
events "passed", "skipped", "failed"
}
}
olduğunu
package mypackage;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class HelloWorldTest {
@Test
public void testHelloWorld(){
assertEquals(2, 1+1, "message");
}
}
Benim klasör yapısı,
java-template-project
--- src
--- mypackage
--- HelloWorld.java
--- test
--- mypackage
--- HelloWorldTest.java
ve IntelliJ 2017/01/03, paketi mypackage
,
java-template-project
--- java-template-project_main
--- src/mypackage
--- HelloWorld(.java)
--- java-template-project_test
--- test/mypackage
--- HelloWorldTest(.java)
Bu nedenle, Gradle günümüzde kaynağı ve testleri kendi paketlerinde istemektedir. Açıkçası bu konu hakkında ilk soru değil ben
çalıştığım şey
buldum ilgili tüm sorular
Gradle project running jUnit 5 tests in IntelliJ
olan Ama gördüğünüz gibi bu IntelliJ'in eski sürümleri için, ve ben bir JUnit bağımlılık çizgisinde, cevaplardan birine göre IJ 2016.3.3 ve üstü için sözdizimi kullanıyorum, bu yüzden tamam olmalı.
Upgrade from JUnit 4 to JUnit 5 in intellij with gradle
geri yukarıdaki soruya Linkler ve yukarıdaki soruya aynı çizgiyi kullanan bu Jetbrains blog bağlantılar.Ayrıca bağlanan: ben koştum zaman bağımlılık olarak, söz konusu,
Integrate JUnit 5 tests results with Intellij test report Bu seferki gösterileri de
Why were JUnit Jupiter and JUnit Vintage separated When I Running TestCase in IntelliJ? Well açıklanmıştırtestRuntime("org.junit.vintage:junit-vintage-engine:5.0.0-M1")
, çıkış o bulamadık gösterdi bu bir JUnit 5 içindir Maven Repository göre bu sürüm ama: orada
testRuntime("org.junit.vintage:junit-vintage-engine:4.12.0-M4")
cevap tıpkı l beri intellij içinde testler unutmayın Ater sürümleri JUnit 5 desteğine sahiptir. Biliyorum ve IntelliJ'in içinden koştuğumda test iyi çalışıyor. Ama Gradle'ı (ve bağımlılık yönetimine ihtiyaç duyan Travis'i) kullanmak istiyorum.
- Ben
testCompile("org.junit.platform:junit-platform-gradle-plugin:1.0.0-M3")
testCompile("org.junit.jupiter:junit-jupiter-engine:5.0.0-M3")
kullanarak çalıştı ama sonuç değişmedi.
Şablon projem https://github.com/PHPirates/java-template-project adresinde bulunur, ancak bu soru gerekli tüm bilgileri içermelidir.
Aynı sorunu vardı. @Test'in "org.junit" (Junit4 @Test) yerine 'org.junit.jupiter.api' (Junit5 @Test) 'den içe aktarılması gerektiğini öğrendim. – yname