konwencja zapisywania testów integracyjnych

konwencja zapisywania testów integracyjnych
Julian_
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1703
0

Mamy takie drzewo na testy jednostkowe:

Kopiuj
/-main
  /-src
  /-test
    /-net.4programmers.julian.app.service
      --FirstServiceTest.java
      --SecondServiceTest.java

Napisałem test integracyjny FirstIntegrationTest.java gdzie go wepchnąć, jaką macie konwencję?

Załóżmy, że zrobię tak jak w Atlassianie:

Kopiuj
/-main
  /-src
  /-test
    /-ut
      /-net.4programmers.julian.app.service
        --FirstServiceTest.java
        --SecondServiceTest.java
    /-it
      /-net.4programmers.julian.app
        --FirstIntegrationTest.java

Co zrobić by domyślnie test integracyjny się nie odpalał przy mvn install i żeby wywoływać go mavenem "na życzenie"?
A może osobny projekt na testy integracyjne?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
1

Ja robie osobny moduł bo testy integracyjne mają kupę swoich zależności i generalnie nie pasują do żadnego innego modułu bo są przecież cross-cutting.

Co zrobić by domyślnie test integracyjny się nie odpalał przy mvn install i żeby wywoływać go mavenem "na życzenie"?

To akurat dziwny pomysł.

Julian_
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1703
0
Shalom napisał(a):

Ja robie osobny moduł bo testy integracyjne

moduł czy projekt? Bo jak robis moduł, to jak ktoś chce to szybko skompilować to będzie czekał aż mu się kilkunastuminotowe testy integracyjne wykonają.

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5025
0

No można testów wyłączać w mavienie?

Julian_
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1703
0
lion137 napisał(a):

No można testów wyłączać w mavienie?

Chciałbym wyłączać tylko integracyjne (kilkunasto minutowe), a zostawiać jednostkowe (kilkunastosekundowe).

QuantumComp
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 40
0

Używasz jakiegoś pluginu do odpalania testów?

PI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2787
1
Julian_ napisał(a):

Chciałbym wyłączać tylko integracyjne (kilkunasto minutowe), a zostawiać jednostkowe (kilkunastosekundowe).

No to maven surefire plugin od tego jest (do integracyjnych jest failsafe plugin)

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5550
1
Pinek napisał(a):
Julian_ napisał(a):

Chciałbym wyłączać tylko integracyjne (kilkunasto minutowe), a zostawiać jednostkowe (kilkunastosekundowe).

No to maven surefire plugin od tego jest (do integracyjnych jest failsafe plugin)

A jak trzeba więcej rozróżnień to są jeszcze profile w mavenie

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
2

moduł czy projekt? Bo jak robis moduł, to jak ktoś chce to szybko skompilować to będzie czekał aż mu się kilkunastuminotowe testy integracyjne wykonają.

Testy IT mam ustawione w failsafe plugin zeby leciały na verify a nie na compile czy na test. Poza tym to jakiś srogi monolit jak masz testy które lecą kilkanaście minut o_O

Korges
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 601
1

Tak jak @Shalom
Masz 2 wyjscia, albo robisz oddzielny projekt do testów IT albo musisz skonfigurować pluginy failsafe i surefire.
surefire -> unit testy
failsafe -> it testy
Odpalajac mvn verify, pierw przelecisz przez jednostkowe dopiero potem wchodzą IT. U mnie pamiętam był to pewien problem... Jednostkowych było całkiem sporo a ja np chciałem sprawdzić tylko testy IT. Wpadłem na pomysł aby załączyć flage podawaną podczas run coś w stylu
mvn verify --unitTest=false (niepamiętam syntax, bez podawania flagi wszystko leciało normalnie)
która wyłączała odpalanie unit testów.
No i generalnie po tym case z teamem doszedliśmy do wniosku że najlepiej oddzielić zestaw testów IT od całego projektu.

nie100sowny
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 402
1

Zacznij testować use case i pisz testy per use case. Problem nazewnictwa zniknie. Najlepiej z bazą danych testcontainers i używając klienta HTTP etc.

Mówisz, że takie testy są wolne? Problem leży gdzie indziej prawdopodobnie w magii frameworków, więc przeczytaj ich dokumentację lub użyj prostszych narzędzi.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.