Izolacja testów integracyjnych i jednostkowych w Spring

0

Cześć,
Problem izolacji testów integracyjnych i lekkich jednostkowych w Spring (akurat korzystam ze Spring Boot) można rozwiązać na wiele sposobów. W jaki sposób to robicie w Waszych projektach? Czy opieracie się na pluginach do Mavena jak failsafe and surefire?Zależy mi na poznaniu Waszych strategii, być może mnie zainspirują.

Szczególnie mile widziane rozwiązania dla Mavena.

0

Gradle sourceSets - Separation based on different source directories

https://moelholm.com/2016/10/22/spring-boot-separating-tests/

Bardzo ważne w jaki sposób poukładamy sobie pakiety, jakieś ładne fasady, które można testować i dbać o to, żeby jednostkowych testów było więcej bo to one dają fast feedback.
Czyli pakiety podzielone bardziej domenowo niż według typu.

0

W katalogu /test mam podkatalogi /unit oraz /integration.

mvn test odpala wszystkie, więc to nie problem

A do uruchomienia osobno wszystkich unit testów, odpalam przez klik w /test/unit -> run all in /unit. Ta konfiguracja mi się zapisuje i mogę ją później uruchamiać skrótem klawiszowym.

To rozwiązanie mi wystarcza, ale jestem ciekawy lepszych pomysłów.

0

No można zacząć używać narzędzi przyszłości jak Gradle a nie starocie jak Maven ;)

0

Dlaczego warto używać Gradle zamiast Maven? Wiem, że łatwiej zrobić task runner (ale równie dobrze można połączyć Mavena i Anta). Co takiego naprawiono w Gradle co jest spaprane w Mavenie?

0
margor90 napisał(a):

Dlaczego warto używać Gradle zamiast Maven? Wiem, że łatwiej zrobić task runner (ale równie dobrze można połączyć Mavena i Anta). Co takiego naprawiono w Gradle co jest spaprane w Mavenie?

Połączenie mavena i anta nie brzmi szczęśliwie

  • szybszy według mnie
  • pozwala skryptować
  • dobry tool do automatyzacji i około devops
  • bardziej czytelny
  • łatwo pisać własne pluginy
  • już można używać w Kotlinie używając gradle
  • lepiej działa z IDEA

wracać do Mavena po prostu mi się nie chce.

0

Mi się nie chce uczyć Gradle. I planuje pisać Kotlina (ze Spring Bootem) na Mavenie.

0
margor90 napisał(a):

Mi się nie chce uczyć Gradle. I planuje pisać Kotlina (ze Spring Bootem) na Mavenie.

Nie wiem co tam jest do uczenia wielce. Dla mnie Maven stał się irytujący.
Dla mnie Gradle jest wygodniejszy. Zresztą Spring Boota goscie od Springa też budują przy jego pomocy.

Spring Boot z Kotlinem ? To może jednak sprawdz wpis by @Koziołek
http://koziolekweb.pl/2017/02/05/kotlin-z-jpa-rzeczy-nieoczywiste/

0

A tu z Poznania:

Temat jest w złym dziale.

1

Dlaczego warto używać Gradle zamiast Maven? Wiem, że łatwiej zrobić task runner (ale równie dobrze można połączyć Mavena i Anta). Co takiego naprawiono w Gradle co jest spaprane w Mavenie?

-t głupcze!

(I przepraszam, nie chcę nikogo urazić i absolutnie nie uważam nikogo powyżej za głupiego - po prostu taka parafraza hasła).
I naprawde -t - continous build jest fajne - to się ładnie rozpędza ( jeszcze nie działa tak super jak ~ w sbt ale daje radę).

0

W Gradlu piszesz w groovym albo kotlinie obecnie.

Gradle bardzo dobrze działa z Jenkinsem i na pewno pozwala na więcej, np. sterowanie build steps itp. I około devops również.

Warto sprawdzić:
http://allegro.tech/2015/03/Adopting-Gradle-at-allegro-pl-a-success-story.html
http://techblog.netflix.com/2016/03/how-we-build-code-at-netflix.html

http://www.slideshare.net/SpringCentral/continuous-delivery-with-gradle-and-jenkins

0

@margor90:
Gradle buduje szybciej projekt rowniez dzieki incremental builds.

1 użytkowników online, w tym zalogowanych: 0, gości: 1