Is er een manier om tests met SBT te bouwen zonder ze uit te voeren?
Mijn eigen gebruiksvoorbeeld is om statische analyse uit te voeren op de testcode met behulp van een scalac-plug-in. Een andere mogelijke use-case is om een deel of alle testcode uit te voeren met een andere runner dan degene die in SBT is ingebouwd.
Idealiter zou er een oplossing voor dit probleem zijn die van toepassing is op elk SBT-project. Maven heeft bijvoorbeeld een test-compile-opdracht die kan worden gebruikt om de tests te compileren zonder ze uit te voeren. Het zou geweldig zijn als SBT hetzelfde had.
Minder ideaal, maar nog steeds erg nuttig, zouden oplossingen zijn waarbij de bouwbestanden van het project moeten worden gewijzigd.
Antwoord 1, autoriteit 100%
Gebruik gewoon de opdracht test:compile
.
Antwoord 2, autoriteit 14%
test:compile
werkt voor het samenstellen van uw unit-tests.
Om integratietests te compileren kunt u it:compile
gebruiken.
Nog een hint om continu te compileren bij elke bestandswijziging: ~test:compile
Antwoord 3, autoriteit 6%
We hebben een build.sbt
-bestand dat voor meerdere projecten wordt gebruikt. Door sbt test:compile
te doen, werden de tests voor elk afzonderlijk project gecompileerd en duurde het meer dan 30 minuten.
Ik ontdekte dat ik alleen de tests voor een specifiek project met de naam xyz
kan compileren door te doen:
sbt xyz/test:compile
Antwoord 4, autoriteit 2%
Het gebruik van sbt versie 1.5.0 en hoger test:compile
geeft een waarschuwing voor beëindiging.
Gebruik Test / compile
.
(docs)