Comment compiler des tests avec SBT sans les exécuter

97

Existe-t-il un moyen de créer des tests avec SBT sans les exécuter?

Mon propre cas d'utilisation est d'exécuter une analyse statique sur le code de test en utilisant un plugin scalac. Un autre cas d'utilisation possible est d'exécuter une partie ou la totalité du code de test en utilisant un runner distinct de celui intégré à SBT.

Idéalement, il y aurait une solution à ce problème qui s'applique à tout projet SBT. Par exemple, Maven a une commande test-compile qui peut être utilisée uniquement pour compiler les tests sans les exécuter. Ce serait formidable si SBT avait la même chose.

Moins idéales, mais toujours très utiles, seraient des solutions qui impliquent la modification des fichiers de construction du projet.

user1809090
la source

Réponses:

160

Utilisez simplement la test:compilecommande.

Guillaume Massé
la source
1
est-ce que cela compile les tests et le code? ou juste les tests?
Jwan622
21

test:compile fonctionne pour compiler vos tests unitaires.

Pour compiler des tests d'intégration, vous pouvez utiliser it:compile.

Un autre conseil pour compiler en continu à chaque changement de fichier: ~test:compile

Brendan Maguire
la source
6

Nous avons un build.sbtfichier qui est utilisé pour plusieurs projets. Faire sbt test:compilecompilé les tests pour chaque projet et a pris plus de 30 minutes.

J'ai découvert que je ne pouvais compiler que les tests pour un projet spécifique nommé xyzen faisant:

sbt xyz/test:compile
pacoverflow
la source