Saya ingin menjalankan kotak uji JUnit dari baris perintah. Bagaimana saya bisa melakukan ini?
javac -cp "junit-4.12.jar; hamcrest-core-1.3.jar;." Tests.java
bekerja untukku. Perhatikan titik akhir - penting!
Saya ingin menjalankan kotak uji JUnit dari baris perintah. Bagaimana saya bisa melakukan ini?
javac -cp "junit-4.12.jar; hamcrest-core-1.3.jar;." Tests.java
bekerja untukku. Perhatikan titik akhir - penting!
Jawaban:
Untuk JUnit 5.x itu:
java -jar junit-platform-console-standalone-<version>.jar <Options>
Temukan ringkasan singkat di https://stackoverflow.com/a/52373592/1431016 dan detail lengkapnya di https://junit.org/junit5/docs/current/user-guide/#running-tests-console-launcher
Untuk JUnit 4.X itu benar-benar:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
Tetapi jika Anda menggunakan JUnit 3.X perhatikan nama kelasnya berbeda:
java -cp .:/usr/share/java/junit.jar junit.textui.TestRunner [test class name]
Anda mungkin perlu menambahkan lebih banyak JAR atau direktori dengan file kelas Anda ke classpath dan pisahkan dengan titik koma (Windows) atau titik dua (UNIX / Linux). Itu tergantung pada lingkungan Anda.
Sunting: Saya telah menambahkan direktori saat ini sebagai contoh. Bergantung pada lingkungan Anda dan bagaimana Anda membangun aplikasi Anda (bisa berupa bin / atau build / atau bahkan my_application.jar dll). Catatan Java 6+ mendukung glob di classpath, Anda dapat melakukannya:
java -cp lib/*.jar:/usr/share/java/junit.jar ...
Semoga ini bisa membantu. Tulis tes! :-)
Cara Maven
Jika Anda menggunakan Maven, Anda dapat menjalankan perintah berikut untuk menjalankan semua kasus pengujian Anda:
mvn clean test
Atau Anda dapat menjalankan tes tertentu seperti di bawah ini
mvn clean test -Dtest=your.package.TestClassName
mvn clean test -Dtest=your.package.TestClassName#particularMethod
Jika Anda ingin melihat jejak tumpukan (jika ada) di konsol alih-alih file laporan di folder target \ surefire-laporan, setel properti pengguna surefire.useFile ke false. Sebagai contoh:
mvn clean test -Dtest=your.package.TestClassName -Dsurefire.useFile=false
Cara gradle
Jika Anda menggunakan Gradle, Anda dapat menjalankan perintah berikut untuk menjalankan semua kasus pengujian Anda:
gradle test
Atau Anda dapat menjalankan tes tertentu seperti di bawah ini
gradle test --tests your.package.TestClassName
gradle test --tests your.package.TestClassName.particularMethod
Jika Anda ingin informasi lebih lanjut, Anda dapat mempertimbangkan opsi seperti --stacktrace, atau --info, atau --debug.
Misalnya, ketika Anda menjalankan Gradle dengan info logging level --info, itu akan menunjukkan kepada Anda hasil dari setiap tes saat mereka berjalan. Jika ada pengecualian, itu akan menunjukkan jejak tumpukan, menunjukkan apa masalahnya.
gradle test --info
Jika Anda ingin melihat hasil pengujian keseluruhan, Anda dapat membuka laporan di browser, misalnya (Buka menggunakan Google Chrome di Ubuntu):
google-chrome build/reports/tests/index.html
Cara semut
Setelah Anda mengatur file build build Ant.xml Anda, Anda dapat menjalankan test case JUnit Anda dari baris perintah seperti di bawah ini:
ant -f build.xml <Your JUnit test target name>
Anda dapat mengikuti tautan di bawah ini untuk membaca lebih lanjut tentang cara mengkonfigurasi tes JUnit dalam file Ant build: https://ant.apache.org/manual/Tasks/junit.html
Cara normal
Jika Anda tidak menggunakan Maven, atau Gradle atau Ant, Anda dapat mengikuti cara berikut:
Pertama-tama, Anda perlu mengkompilasi kasus pengujian Anda. Misalnya (di Linux):
javac -d /absolute/path/for/compiled/classes -cp /absolute/path/to/junit-4.12.jar /absolute/path/to/TestClassName.java
Kemudian jalankan test case Anda. Sebagai contoh:
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
Jawaban yang diberikan @ lzap adalah solusi yang bagus. Namun, saya ingin menambahkan bahwa Anda harus menambahkan. ke jalur kelas, sehingga direktori Anda saat ini tidak ditinggalkan, sehingga kelas Anda sendiri akan ditinggalkan. Ini terjadi pada saya di beberapa platform. Jadi versi terbaru untuk JUnit 4.x adalah:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
Pastikan JUnit.jar ada di classpath Anda, lalu panggil runner baris perintah dari konsol
java org.junit.runner.JUnitCore [nama kelas tes]
Referensi: FAQ junit
Dengan JUnit 4.12 berikut ini tidak berfungsi untuk saya:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
Rupanya , mulai JUnit 4.11 dan selanjutnya Anda juga harus memasukkan hamcrest-core.jar
dalam classpath Anda:
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]
Di windows itu
java -cp .;/path/junit.jar org.junit.runner.JUnitCore TestClass
[nama kelas uji tanpa ekstensi .class]
misalnya:
c:\>java -cp .;f:/libraries/junit-4.8.2 org.junit.runner.JUnitCore TestSample1 TestSample2 ...
dan seterusnya, jika seseorang memiliki lebih dari satu kelas tes.
-cp adalah singkatan dari class path dan dot (.) mewakili classpath yang ada sementara semi colon (;) menambahkan jar yang diberikan tambahan ke classpath, seperti pada contoh di atas junit-4.8.2 sekarang tersedia di classpath untuk mengeksekusi kelas JUnitCore yang di sini kita telah terbiasa mengeksekusi kelas tes kami.
Pernyataan baris perintah di atas membantu Anda untuk menjalankan tes junit (versi 4+) dari command prompt (yaitu MSDos).
Catatan: JUnitCore adalah fasad untuk menjalankan tes junit, fasad ini termasuk dalam 4+ versi junit.
Jika proyek Anda berbasis Maven, Anda dapat menjalankan semua metode uji dari kelas uji CustomTest yang termasuk dalam modul 'modul-saya' menggunakan perintah berikut:
mvn clean test -pl :my-module -Dtest=CustomTest
Atau jalankan hanya 1 metode uji myMethod dari kelas uji CustomTest menggunakan perintah berikut:
mvn clean test -pl :my-module -Dtest=CustomTest#myMethod
Untuk kemampuan ini Anda memerlukan Maven Surefire Plugin v.2.7.3 + dan Junit 4. Lebih detail ada di sini: http://maven.apache.org/surefire/maven-surefire-plugin/examples/single-test.html
Atau Anda dapat menggunakan metode berikut di kelas JunitCore http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html
jalankan (dengan Permintaan, kelas, dan Pelari) atau runClasses dari file java Anda.
Jika Anda memproyeksikan berdasarkan semut maka Anda harus dapat melakukan sesuatu seperti ini dari konsol:
ant test
Jika ini tidak berhasil, tetapi tetap saja proyek Anda berbasis semut, Anda dapat menjalankan ant -p
daftar target utama proyek.