So kompilieren Sie Tests mit SBT, ohne sie auszuführen

97

Gibt es eine Möglichkeit, Tests mit SBT zu erstellen, ohne sie auszuführen?

Mein eigener Anwendungsfall besteht darin, eine statische Analyse des Testcodes mithilfe eines Scalac-Plugins durchzuführen. Ein weiterer möglicher Anwendungsfall besteht darin, einen Teil oder den gesamten Testcode mit einem anderen als dem in SBT integrierten Runner auszuführen.

Idealerweise gibt es eine Lösung für dieses Problem, die für jedes SBT-Projekt gilt. Beispielsweise verfügt Maven über einen Testkompilierungsbefehl, mit dem die Tests nur kompiliert werden können, ohne sie auszuführen. Es wäre großartig, wenn SBT das Gleiche hätte.

Weniger ideal, aber dennoch sehr hilfreich wären Lösungen, bei denen die Build-Dateien des Projekts geändert werden.

user1809090
quelle

Antworten:

160

Verwenden Sie einfach den test:compileBefehl.

Guillaume Massé
quelle
1
Kompiliert dies Tests und den Code? oder nur die Tests?
Jwan622
21

test:compile funktioniert zum Kompilieren Ihrer Unit-Tests.

Zum Kompilieren von Integrationstests können Sie verwenden it:compile.

Ein weiterer Hinweis zum kontinuierlichen Kompilieren bei jeder Dateiänderung: ~test:compile

Brendan Maguire
quelle
6

Wir haben eine build.sbtDatei, die für mehrere Projekte verwendet wird. Doing sbt test:compiledie Tests für jedes einzelne Projekt zusammengestellt und übernahm 30 Minuten.

Ich habe herausgefunden, dass ich nur die Tests für ein bestimmtes Projekt mit folgenden Namen kompilieren kann xyz:

sbt xyz/test:compile
Pacoverflow
quelle