Je travaille sur une application Scala. Pour le faire correctement, je veux que le noyau de mon code soit complètement couvert par des tests. Pour ce faire, j'utilise le plugin SCCT pour SBT.
Malheureusement, mes tests reposent sur une base de données en mémoire (h2). Par conséquent, mes tests ne peuvent pas s'exécuter en parallèle. Cependant, sbt exécute toutes les tâches en parallèle par défaut.
Pour résoudre ce problème, j'ai modifié build.sbt
fichier pour désactiver l'exécution parallèle des tests comme:
parallelExecution in Test := false
Le problème avec la configuration de construction est que pour générer une couverture de code, je dois exécuter sbt scct:test
plutôt que sbt test
.
"J'ai essayé de désactiver l'exécution parallèle de scct:test
mais le code ci-dessous ne compile pas:
parallelExecution in scct:test := false
Quelqu'un peut-il m'aider en désactivant l'exécution parallèle dans scct:test
soit en mettant le drapeau, soit en faisant scct:test
exécuter dans le contexte du test?
Réponses:
3 pour la réponse № 1Je pense que le nom de la tâche est en fait ScctTest
. Essayer:
parallelExecution in Test := false
parallelExecution in ScctTest := false
0 pour la réponse № 2
Avez-vous envisagé de créer une nouvelle base de données pourchaque test et faire du nom de base de données créé un nom aléatoire pour chacun afin qu'ils ne s'affrontent pas. Fonctionne bien tant que vous n'avez pas un nombre absolument énorme de tests nécessitant une base de données.