Jak kompilować testy za pomocą SBT bez ich uruchamiania

97

Czy istnieje sposób na tworzenie testów za pomocą SBT bez ich uruchamiania?

Mój własny przypadek użycia polega na uruchomieniu analizy statycznej kodu testowego przy użyciu wtyczki skalac. Innym możliwym przypadkiem użycia jest uruchomienie części lub całości kodu testowego przy użyciu oddzielnego modułu uruchamiającego niż ten wbudowany w SBT.

Idealnie byłoby rozwiązanie tego problemu, które dotyczy każdego projektu SBT. Na przykład Maven ma polecenie test-compile, którego można użyć do skompilowania testów bez ich uruchamiania. Byłoby wspaniale, gdyby SBT miało to samo.

Mniej idealne, ale nadal bardzo pomocne, byłyby rozwiązania wymagające modyfikacji plików kompilacji projektu.

user1809090
źródło

Odpowiedzi:

160

Po prostu użyj test:compilepolecenia.

Guillaume Massé
źródło
1
czy to kompiluje testy i kod? czy tylko testy?
Jwan622
21

test:compile działa przy kompilowaniu testów jednostkowych.

Do kompilowania testów integracyjnych możesz użyć it:compile.

Kolejna wskazówka dotycząca ciągłego kompilowania przy każdej zmianie pliku: ~test:compile

Brendan Maguire
źródło
6

Mamy build.sbtplik używany w wielu projektach. Wykonanie sbt test:compileskompilowało testy dla każdego projektu i zajęło ponad 30 minut.

Dowiedziałem się, że mogę skompilować tylko testy dla konkretnego projektu o nazwie xyz:

sbt xyz/test:compile
pacoverflow
źródło