Jak możesz polegać na kodzie testowym z innego modułu w Maven?
Przykład mam 2 moduły:
- Baza
- Główny
Chciałbym, aby przypadek testowy w Main rozszerzył podstawową klasę testową w Base. czy to możliwe?
Aktualizacja: Znaleziono akceptowalną odpowiedź , która obejmuje utworzenie słoika testowego.
Odpowiedzi:
Polecam użycie typu zamiast klasyfikatora (patrz także: klasyfikator ). Mówi Maven nieco bardziej wyraźnie, co robisz (i zauważyłem, że m2eclipse i q4e lubią to lepiej).
źródło
Dzięki za sugestię modułu podstawowego. Wolałbym jednak nie tworzyć nowego modułu tylko do tego celu.
Znalazł akceptowalną odpowiedź w dokumentacji Surefire Maven i blogu . Zobacz także „ Jak utworzyć słoik zawierający klasy testowe ”.
Spowoduje to
src/test/java
utworzenie pliku jar kodu z wykorzystaniem wtyczki jar, dzięki czemu moduły z testami mogą współdzielić kod.Aby użyć dołączonego pliku JAR testu, który został utworzony powyżej, wystarczy określić zależność od głównego artefaktu za pomocą określonego klasyfikatora testów:
źródło
Rozwiązaliśmy ten problem, tworząc projekt maven z kodem testowym jako src / main / java i dodając do projektów następującą zależność:
źródło
Tak ... po prostu dołącz moduł podstawowy jako zależność w Main. Jeśli dziedziczysz tylko kod testowy, możesz użyć znacznika scope, aby upewnić się, że Maven nie umieści kodu w artefakcie po wdrożeniu. Coś takiego powinno działać:
źródło