Pertanyaan Plugin uji Maven (pasti) tidak bekerja


Saya telah mengikuti konfigurasi di pom.xml saya

<build>
  <plugins>
      <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.17</version>
          <configuration>
              <excludes>
                  <exclude>**/DocumentChangeSubscriberTest.java</exclude>
              </excludes>
          </configuration>
      </plugin>
      (...)

DocumentChangeSubscriberTest adalah tes arquillian yang ingin saya jalankan hanya di profil yang ditentukan. Ketika saya mengetik mvn install semua tes dijalankan, bahkan DocumentChangeSubscriberTest yang ingin saya kecualikan. Bagaimana mengecualikan tes dari profil default (anonim)?

Saya mencoba <includes><include>... dan itu berfungsi dengan baik - hanya tes yang disertakan dijalankan.

saya melihat Plugin uji maven yakin menjalankan tes bahkan jika mereka dikecualikan: tapi ini tidak berhasil untukku. Saya juga mencoba banyak versi maven-surefire-plugin tanpa hasil. Ada ide?


5
2017-09-09 08:31


asal


Jawaban:


Meskipun Anda sudah menemukan jawaban, ada solusi yang lebih sederhana.

Tidak perlu digunakan <excludes> menandai. Berpegang teguh pada konvensi penamaan maven akan cukup. Cukup beri nama tes integrasi Anda dengan *IT akhiran (misalnya: MyClassIT.java) dan biarkan maven-failsafe-plugin lakukan tugasnya.

Ingat itu maven-surefire-plugin dirancang untuk menjalankan Anda tes unit. Itu berarti semua kelas pengujian yang dengan pola wildcard berikut:

  1. Test*.java
  2. *Test.java
  3. *TestCase.java

Di samping itu, maven-failsafe-plugin dirancang untuk menjalankan Anda tes integrasi, dan akan secara otomatis menyertakan semua kelas tes dengan pola wildcard berikut:

  1. IT*.java
  2. *IT.java 
  3. *ITCase.java

Tes arquillian Anda tentu saja merupakan tes integrasi, jadi ganti namanya menjadi DocumentChangeSubscriberSAYA T.Jawa akan menyelesaikan semua masalah Anda dari kotak.

btw. posting ini mungkin juga berguna dalam hal tes unit pemisahan dari tes integrasi.

Semoga itu membantu seseorang.


7
2017-09-18 11:09



Meskipun pertanyaan telah diselesaikan, jika seseorang mengalami masalah yang serupa dengan pengecualian, saya memposting ini. Saya memiliki masalah serupa di mana-dalam pengecualian saya tidak berfungsi untuk maven-failsafe-plugin. Saya menggunakan pengecualian untuk mengecualikan menjalankan beberapa tes integrasi.

Saya menggunakan mvn verify untuk menjalankan tes integrasi.

dalam hal ini,

 <excludes>
   <exclude>**/something/*Test.java</exclude>
</excludes>

TIDAK berfungsi jika saya menggunakan opsi -Dit.test
 yaitu mvn verify -Dit.test="<some_package>"


 Namun TIDAK bekerja dengan benar jika saya tidak menentukan -Dit.test.
 yaitu mvn verify


2
2017-08-15 20:59



Pertanyaan ini sudah menjawab di thread ini (atau setidaknya yang sangat mirip): Bagaimana saya bisa melewati tes di tujuan instal maven, sementara menjalankannya dalam tujuan tes maven?

Coba lihat, mungkin berguna! Jawaban sederhananya adalah apa yang Anda coba lakukan bukanlah pilihan tanpa menggunakan profil khusus (tetapi cara ini lebih baik dijelaskan di utas itu).


1
2017-09-09 08:42



Oke, mengecualikan tes berfungsi. Itu sesederhana salah mengeja nama kelas saya: DocumentChangeSubsriberTest.java dari pada DocumentChangeSubscriberTest.java.

Maaf.


1
2017-09-09 08:49



Saya memiliki masalah yang sama, hanya untuk membuang hal lain bagi orang-orang untuk dilihat: My maven-surefire-plugin, sebagai orang yang dijelaskan di atas, secara tidak sengaja dinyatakan di bawah <reporting><plugins><plugin>....</plugin></plugins></reporting> tetapi tentu saja harus di bawah <build><plugins><plugin>...</plugin></plugins></build>. Atas <reporting> dan <build> spesifikasi lebih tinggi dan lebih tinggi dari halaman sehingga sesuatu untuk memverifikasi apakah ada yang mendapat kesalahan yang sama ini.


1
2018-05-01 13:54