Maven, bazıları başarısız olsa bile tüm testleri çalıştırıyor


243

Birkaç modül içeren bir projem var. Tüm testler geçtiğinde Maven testi hepsini çalıştırır.

İlk modülde testler başarısız olursa, maven bir sonraki projeye devam etmeyecektir. Surefire ayarlarında testFailureIgnore true olarak ayarladım, ancak yardımcı olmuyor.

Maven'i tüm testleri nasıl çalıştırırım?


Maven-surefire-eklentisinin hangi sürümü?
Pascal Thivent

Yanıtlar:


359

Gönderen Maven katıştırıcı belgelerinde :

-fae, --fail-at-end Sadece sonradan yapı başarısız; etkilenmeyen tüm yapıların devam etmesine izin ver

-fn, --fail-never Proje sonucundan bağımsız olarak ASLA yapıda başarısız olmuyor

Yani , güvenli olduğundan daha fazla bir modül test ediyorsanız -fae.

Aksi takdirde, birden fazla modülünüz varsa ve bunların hepsinin test edilmesini istiyorsanız (başarısız test modülüne bağlı olanlar bile), çalıştırmalısınız mvn clean install -fn.
-faebaşarısız testi olan modüle devam edecek (diğer tüm testleri çalıştıracaktır), ancak ona bağımlı tüm modüller atlanacaktır.


1
ayrıca cmd'nin bazı hata bilgilerini vermesi için -e ekleyebilirsiniz.
despot

11
Sadece seçeneği test ettim --fail-never. Maven derleme hataları olsa bile derlemede başarısız olmaz. Jenkins üzerinde bu seçeneği kullanırsanız, derleme hataları olsa bile derleme başarılı görünüyor. -Dmaven.test.failure.ignore=trueBu durumda tercih ediyorum ve Jenkins'in kesin ateş raporlarını analiz etmesine izin veriyorum .
fuemf5

@wlnirvana Yazıyı şimdi bu bağlantıyla düzenledim (yorumunuzu silmek için çekinmeyin ...)
Steve Chambers

93

Az önce "-fae" parametresini buldum.


3
Ne yazık ki, TeamCity'ye ilettiğimde bu parametre çalışmıyor.
ripper234

4
Çok modüllü bir projede, başarısız testlere sahip modüle bağımlı modüller atlanır. Bunun yerine -fn kullanın.
Mayıs 2018'de hipokito

2
@ ripper234 TeamCity'de çalışmasını sağlamanın bir yolunu buldunuz mu?
Jeredriq Demas

86

Surefire 2.6 ile test yapabilir ve surefire ile yapılandırabilirsiniz testFailureIgnore=true. Veya komut satırında:

mvn install -Dmaven.test.failure.ignore=true

16
IIRC, tüm testlerin yapılması ve sonunda başarısız olmaktan ziyade tüm yapının başarısız olmaması etkisine sahiptir.
Ondra Novižka

1
Bu benim için işe yarayan tek seçenek ... "-fae" seçeneği test başarısızlıklarıyla ilgili hiçbir şey yapmadı
Yoi

38

Pom.xml kök projenize surefire eklentisi için aşağıdaki yapılandırmayı eklemeyi deneyin :

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <testFailureIgnore>true</testFailureIgnore>
        </configuration>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

17

Hızlı bir cevap:

mvn -fn test

İç içe proje yapılarıyla çalışır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.