Tests compileren met SBT zonder ze uit te voeren

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:compilewerkt voor het samenstellen van uw unit-tests.

Om integratietests te compileren kunt u it:compilegebruiken.

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:compilete 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 xyzkan compileren door te doen:

sbt xyz/test:compile

Antwoord 4, autoriteit 2%

Het gebruik van sbt versie 1.5.0 en hoger test:compilegeeft een waarschuwing voor beëindiging.

Gebruik Test / compile.

(docs)

Other episodes