Komut satırından JUnit test senaryoları çalıştırmak istiyorum. Bunu nasıl yapabilirim?
javac -cp "junit-4.12.jar; hamcrest-core-1.3.jar;." Tests.java
benim için çalıştı. Bitiş noktasını not edin - önemli!
Komut satırından JUnit test senaryoları çalıştırmak istiyorum. Bunu nasıl yapabilirim?
javac -cp "junit-4.12.jar; hamcrest-core-1.3.jar;." Tests.java
benim için çalıştı. Bitiş noktasını not edin - önemli!
Yanıtlar:
İçin JUnit 5.x öyle:
java -jar junit-platform-console-standalone-<version>.jar <Options>
Kısa bir özeti https://stackoverflow.com/a/52373592/1431016 adresinde ve tüm ayrıntıları https://junit.org/junit5/docs/current/user-guide/#running-tests-console-launcher adresinde bulabilirsiniz.
İçin JUnit 4.X gerçekten var:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
Ancak JUnit 3.X kullanıyorsanız sınıf adının farklı olduğunu unutmayın:
java -cp .:/usr/share/java/junit.jar junit.textui.TestRunner [test class name]
Sınıf yoluna sınıf dosyalarınızla daha fazla JAR veya dizin eklemeniz ve bunu noktalı virgül (Windows) veya iki nokta üst üste (UNIX / Linux) ile ayırmanız gerekebilir. Ortamınıza bağlıdır.
Düzenleme: Geçerli dizini örnek olarak ekledim. Ortamınıza ve uygulamanızı nasıl oluşturduğunuza bağlıdır (bin / veya build / veya my_application.jar vb. Olabilir). Not Java 6+ sınıf yolunda globları destekliyor, şunları yapabilirsiniz:
java -cp lib/*.jar:/usr/share/java/junit.jar ...
Umarım yardımcı olur. Testler yazın! :-)
Maven yolu
Maven kullanıyorsanız, tüm test durumlarınızı çalıştırmak için aşağıdaki komutu çalıştırabilirsiniz:
mvn clean test
Veya aşağıdaki gibi belirli bir testi çalıştırabilirsiniz
mvn clean test -Dtest=your.package.TestClassName
mvn clean test -Dtest=your.package.TestClassName#particularMethod
Target \ surefire-raporlar klasöründeki rapor dosyaları yerine yığın izlemesini (varsa) konsolda görmek istiyorsanız, surefire.useFile kullanıcı özelliğini false olarak ayarlayın. Örneğin:
mvn clean test -Dtest=your.package.TestClassName -Dsurefire.useFile=false
Gradle yolu
Gradle kullanırsanız, tüm test durumlarınızı çalıştırmak için aşağıdaki komutu çalıştırabilirsiniz:
gradle test
Veya aşağıdaki gibi belirli bir testi çalıştırabilirsiniz
gradle test --tests your.package.TestClassName
gradle test --tests your.package.TestClassName.particularMethod
Daha fazla bilgi istiyorsanız, --stacktrace veya --info veya --debug gibi seçenekleri düşünebilirsiniz.
Örneğin, Gradle'ı bilgi günlüğü düzeyi --info ile çalıştırdığınızda, çalışırken her testin sonucunu gösterir. Herhangi bir istisna varsa, sorunun ne olduğunu gösteren yığın izini gösterecektir.
gradle test --info
Genel test sonuçlarını görmek istiyorsanız, raporu tarayıcıda açabilirsiniz, örneğin (Ubuntu'da Google Chrome'u kullanarak açın):
google-chrome build/reports/tests/index.html
Karınca yolu
Ant build file build.xml dosyanızı ayarladıktan sonra, JUnit test örneklerinizi aşağıdaki gibi komut satırından çalıştırabilirsiniz:
ant -f build.xml <Your JUnit test target name>
Ant yapı dosyasında JUnit testlerini yapılandırma hakkında daha fazla bilgi için aşağıdaki bağlantıyı takip edebilirsiniz: https://ant.apache.org/manual/Tasks/junit.html
Normal yol
Maven veya Gradle veya Ant kullanmıyorsanız, aşağıdaki yolu takip edebilirsiniz:
Her şeyden önce, test vakalarınızı derlemeniz gerekir. Örneğin (Linux'ta):
javac -d /absolute/path/for/compiled/classes -cp /absolute/path/to/junit-4.12.jar /absolute/path/to/TestClassName.java
Ardından test senaryolarınızı çalıştırın. Örneğin:
java -cp /absolute/path/for/compiled/classes:/absolute/path/to/junit-4.12.jar:/absolute/path/to/hamcrest-core-1.3.jar org.junit.runner.JUnitCore your.package.TestClassName
@Lzap'in verdiği cevap iyi bir çözümdür. Ancak, eklemeniz gerektiğini eklemek istiyorum. sınıf yoluna gidin, böylece geçerli dizininiz dışarıda kalmaz, böylece kendi sınıflarınız dışarıda kalır. Bu bazı platformlarda başıma geldi. Yani JUnit 4.x için güncellenmiş bir sürüm olurdu:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
Sınıf yolunuzda JUnit.jar olduğundan emin olun, sonra konsoldan komut satırı çalıştırıcısını çağırın
java org.junit.runner.JUnitCore [test sınıfı adı]
Referans: junit SSS
JUnit 4.12 ile aşağıdakiler benim için çalışmadı:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
Görünüşe göre , JUnit 4.11'den itibaren hamcrest-core.jar
sınıf yolunuza da dahil olmalısınız :
java -cp .:/usr/share/java/junit.jar:/usr/share/java/hamcrest-core.jar org.junit.runner.JUnitCore [test class name]
java -cp .:/usr/share/java/junit4.jar org.junit.runner.JUnitCore [test class name]
Pencerelerde
java -cp .;/path/junit.jar org.junit.runner.JUnitCore TestClass
[.class uzantısı olmayan test sınıfı adı]
örneğin:
c:\>java -cp .;f:/libraries/junit-4.8.2 org.junit.runner.JUnitCore TestSample1 TestSample2 ...
ve eğer birden fazla test sınıfı varsa.
-cp sınıf yolunu temsil eder ve nokta (.) mevcut sınıfyolunu temsil ederken, noktalı virgül (;) sınıf yoluna ek verilen kavanozu ekler, çünkü yukarıdaki örnekte junit-4.8.2 artık sınıf yolunda JUnitCore sınıfını çalıştırmak için kullanılabilir burada test sınıflarımızı yürüttük.
Yukarıdaki komut satırı ifadesi, komut isteminden (örn. MSDos) junit (sürüm 4+) sınamalarını yürütmenize yardımcı olur.
Not: JUnitCore, junit testlerini yürütmek için bir cephedir, bu cephe junit'in 4+ versiyonuna dahildir.
Projeniz Maven tabanlıysa, sonraki komutu kullanarak 'my-module' modülüne ait test sınıfı CustomTest'ten tüm test yöntemlerini çalıştırabilirsiniz:
mvn clean test -pl :my-module -Dtest=CustomTest
Veya sonraki komutu kullanarak test sınıfı CustomTest'ten yalnızca 1 test yöntemi myMethod'u çalıştırın:
mvn clean test -pl :my-module -Dtest=CustomTest#myMethod
Bu yetenek için Maven Surefire Plugin v.2.7.3 + ve Junit 4'e ihtiyacınız var. Daha fazla ayrıntı burada: http://maven.apache.org/surefire/maven-surefire-plugin/examples/single-test.html
Alternatif olarak, JunitCore sınıfında aşağıdaki yöntemleri kullanabilirsiniz http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html
java dosyanızdan run (Request, Class sınıfları ve Runner ile) veya runClasses.
Eğer projeniz karınca temelli ise, konsoldan böyle bir şey yapabilmelisiniz:
ant test
Bu işe yaramazsa, ancak yine de projeniz karınca tabanlıysa ant -p
, projenin ana hedeflerini listelemek için koşabilirsiniz .