Maven - Bagaimana cara menyusun tes tanpa menjalankannya?

128

Apakah ada cara di Maven untuk menyusun tes tanpa menjalankannya? Saya ingin menggunakan IDE untuk menjalankan tes khusus dan tidak semuanya.

pengguna373201
sumber
8
Anda mungkin harus mengedit pertanyaan atau mengubah jawaban yang diterima.
Chiranjib

Jawaban:

29

Anda dapat mencoba menggunakan parameter -DskipTests

Referensi:

pemilik
sumber
Di netbeans, itulah yang saya lakukan. Saya melihat mvn -Dmaven.test.skip = true -Dnetbeans.execution = instalasi bersih yang benar kemudian saya melihat yang berikut
user373201
[kompiler: testCompile] Tidak mengkompilasi sumber tes [pasti: tes] Tes dilewati. Atleast menggunakan netbeans sepertinya jika tes dilewati itu tidak mengkompilasi sumber tes
user373201
1
Sudahlah, meskipun log mengatakan itu, sepertinya masih mengkompilasi file uji.
user373201
34
ini mengarah ke melewatkan tes sepenuhnya: pelaksanaan serta kompilasi, lihat jawaban yang benar di bawah ini: test-compile. Saya menggunakannya dengan mvn clean compile test-compile di Eclipse
Yashima
3
@Yashima Anda benar, aswer ini tidak terlalu pintar ... harap terima jawaban di bawah ini, jadi a dapat menghapus yang ini
lweller
334

Bagaimana dengan test-compilefase siklus hidup? Itu tidak memerlukan tes skipping, karena itu terjadi sebelum testfase. Yaitu,

$ mvn test-compile

Dan selesai.

Pengantar Siklus Hidup Bangun menjelaskan lebih lanjut.

RonU
sumber
7
Ini persis apa yang saya butuhkan, terima kasih. Saya tidak tahu tentang penanya asli; tapi saya ingin mengkompilasi tes, kemudian menjalankannya dengan test runner terpisah.
Mike Miller
Saya telah berada di sini lebih sering, daripada yang saya akui ...
Daniel Storch
31

Untuk hanya mengkompilasi tes dan kode, tanpa menjalankannya, lakukan saja:

mvn test-compile
orange77
sumber
7
Saya pikir test-compile termasuk kompilasi
Whimusical
setuju dengan @Whimusical. Apalagi ini akan menjalankan kompilasi tujuan 2 kali.
Gabriel Petrovay
26

Saat menjalankan tujuan yang akan menyertakan fase pengujian (seperti paket), Anda dapat melakukan dua hal:

  • Gunakan perintah mvn -DskipTests=true package. Ini akan mengkompilasi semua tes tetapi tidak menjalankannya.
  • Atau mvn -Dmaven.test.skip=true package. Ini tidak akan mengkompilasi atau menjalankan cabang uji.
Martins
sumber
3

Atau, Anda dapat menggunakan maven.test.skip.execopsi.

mvn -Dmaven.test.skip.exec=true

Maven akan menyusun tes tanpa menjalankannya. Saya menggunakan opsi ini di semua proyek saya secara teratur.

Stephan
sumber
1

Jika Anda benar-benar hanya ingin mengkompilasi tes (lewati semua fase lain seperti compile), ini akan dilakukan

mvn org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile

Lihat binding plugin dari siklus hidup default .

pemalas
sumber
0

Jika Anda mengatur file .xml Anda juga dapat menggunakan

<maven.test.skip>true</maven.test.skip>
menapole
sumber
5
Anda seharusnya tidak pernah melakukan itu. Jika Anda membutuhkannya, atur di baris perintah, tetapi tidak pernah secara permanen.
Sean Patrick Floyd
13
Tidak pernah mengatakan Anda harus atau tidak seharusnya melakukannya. Hanya memberikan pengetahuan tentang opsi tersebut.
menapole
4
Ini menyebabkan pakar untuk tidak mengkompilasi tes, baik.
Mike Miller
3
@Sean Patrick Floyd: mengapa tidak? ini BUKAN permanen, itu akan mengaturnya di pom.xml.
Balázs Németh