Saya tahu Anda dapat menjalankan semua tes di kelas tertentu menggunakan:
mvn test -Dtest=classname
Tapi saya ingin menjalankan metode individual dan -Dtest = classname.methodname tampaknya tidak berfungsi.
java
unit-testing
maven-2
BillMan
sumber
sumber
mvn test -Dtest=classname
sintaksisnya.Jawaban:
Untuk menjalankan metode uji tunggal di Maven, Anda perlu memberikan perintah sebagai:
dimana
TestCircle
nama kelas tes danxyz
metode tes.Karakter wild card juga berfungsi; baik dalam nama metode dan nama kelas.
Jika Anda menguji dalam proyek multi-modul, tentukan modul yang digunakan untuk menguji
-pl <module-name>
.Untuk tes integrasi gunakan
it.test=...
opsi alih-alihtest=...
:sumber
-pl <module-name>
.-DfailIfNoTests=false
untuk melewati proyek tanpa tes.No Tests Were Executed
terjadi ketika Anda mencoba menjalankan tes dari proyek root dan ada modul tanpa tes sama sekali.mvn "-DTest=JoinTeamTestCases#validateJoinTeam" test
Perhatikan bahwa "-DTest" dimulai dengan KASUS UPPER 'T'.Ada masalah dengan pasti 2.12. Inilah yang terjadi pada saya mengubah maven-surefire-plugin dari 2.12 menjadi 2.11:
mvn test -Dtest=DesignRulesTest
mvn test -Dtest=DesignRulesTest
sumber
@Category(IntegrationTest.class)
, gunakan-Dit.test=ClassName
, jika tidak, Anda akan mendapatkanNo tests were executed!
versi plugin terbaru.Apa yang saya lakukan dengan TestNG saya, (maaf, JUnit tidak mendukung ini) kasus uji adalah saya dapat menetapkan grup untuk tes yang ingin saya jalankan
Dan kemudian jalankan 'mvn -Dgroups = broken'.
sumber
Menjalankan serangkaian metode dalam Kelas Tes Tunggal Dengan versi 2.7.3, Anda hanya dapat menjalankan n tes dalam Kelas Tes tunggal.
CATATAN: ini didukung untuk junit 4.x dan TestNG.
Anda harus menggunakan sintaks berikut
Anda juga bisa menggunakan pola
Pada ayal 2.12.1, Anda dapat memilih beberapa metode (hanya JUnit4X saat ini, patch diterima)
Periksa tautan ini tentang tes tunggal
sumber
Anda dapat menjalankan kelas dan metode pengujian khusus menggunakan sintaks berikut:
sumber
Perintah ini berhasil !!
mvn "-DTest=JoinTeamTestCases#validateJoinTeam" test
Perhatikan bahwa "-DTest" dimulai dengan KASUS UPPER 'T'.sumber
The uji parameter yang disebutkan oleh tobrien memungkinkan Anda untuk menentukan metode menggunakan # sebelum nama metode. Ini harus bekerja untuk JUnit dan TestNG. Saya belum pernah mencobanya, cukup baca di halaman Plugin Surefire :
sumber
Versi baru JUnit berisi pelari Kategori: http://kentbeck.github.com/junit/doc/ReleaseNotes4.8.html
Tetapi prosedur melepaskan JUnit tidak berbasis maven, jadi pengguna maven harus memasukkannya secara manual ke repositori mereka.
sumber
Pada plugin plugin surefire versi 2.22.1 (mungkin lebih awal) Anda dapat menjalankan tes tunggal menggunakan properti testnames saat menggunakan testng.xml
Diberikan testng.xml berikut
dengan pom.xml
Dari baris perintah
Bacaan lebih lanjut - Maven plugin pasti menggunakan testng
sumber
Anda dapat menjalankan kelas uji tunggal, tetapi bukan metode tunggal dalam kelas uji. Anda menggunakan nama kelas yang sederhana bukan nama kelas yang sepenuhnya memenuhi syarat. Jadi, jika Anda memiliki tes di "org.sonatype.test.MyTest" dan itu adalah satu-satunya tes yang ingin Anda jalankan, baris perintah Anda akan terlihat seperti ini:
sumber
Sepengetahuan saya, plugin jitu tidak memberikan cara untuk melakukan ini. Tapi jangan ragu untuk membuka masalah :)
sumber