Comment faire pour désactiver l'exécution en parallèle des tests pour le multi-projet s'appuie?
J'ai un multi-projet de construction avec les tests en sous-projets, et dans un projet parent. Le build est regroupées de façon à ce que le projet parent s'exécute tous les tests de l'enfant projets.
Je l'ai configuré de sorte qu'il n'y a pas d'exécution en parallèle des tests dans les deux sous-projets et le projet parent, via
parallelExecution in Test := false
Cependant, j'ai le sentiment tenace que les tests qui s'étendent sur plusieurs projets sont lancées en parallèle. Dans le cas de l'un des sous-projets, c'est un problème car il mute de l'état dans une base de données de test simultanément, entraînant le test à l'échec.
Des idées quant à la façon de l'échelle mondiale de l'interrupteur de l'exécution en parallèle des tests, entre les projets?
Vous devez vous connecter pour publier un commentaire.
Je pense que vous pouvez appliquer un réglage pour l'ensemble des projets à l'aide de portée
ThisBuild
, commeJe ne sais pas si vous pouvez la combiner avec la portée
Test
, mais il pourrait ne pas être nécessaire.build.sbt
(ce fichier est utilisé même si vous avez une configuration complète dansproject/Build.scala
)De restreindre le nombre d'simultanément exécuter des tests dans tous les projets, utilisation:
Voir sbt documentation
Voir discussion
Voir ma réponse ici Comment faire pour exécuter les sous-projets de tests (y compris les méthodes d'installation) de manière séquentielle lors de l'essai
Il y a un autre moyen d'empêcher l'exécution en parallèle. Vous pouvez effectuer les tâches de test des différents projets dépendent les uns des autres:
References to undefined settings: Project2/*:test from Project2/*:test (/Users/the21st/Work/Project2/build.sbt:36) Did you mean Project2/web-assets-test:test ?
Cela a fonctionné pour moi en version 1.1.0:
Test /parallelExecution := false
Une autre possibilité, basée sur https://stackoverflow.com/a/27068019/1922026, est de définir un alias de commandes à la racine du projet:
où s1, s2 et s3 sont des sous-projets. Lorsque vous êtes dans la racine du projet et exécutez la commande "test" les tests seront exécutés successivement et dans l'ordre défini.