Nous utilisons Junit comme cadre de test. Nous avons de nombreux projets. Nous utilisons gradle (Version 1.12) comme outil de construction. Pour exécuter le test unitaire parallèlement à l'aide de gradle, nous utilisons le script ci-dessous dans tous les projets sous tâche de test.
maxParallelForks = Runtime.runtime.availableProcessors()
Ex:
test {
maxParallelForks = Runtime.runtime.availableProcessors()
}
Nous conservons également le fichier gradle.properties unique. Est-il possible de définir test.maxParallelForks = Runtime.runtime.availableProcessors () dans le fichier gradle.properties plutôt que de définir dans chaque fichier build.gradle sous la tâche de test?
$rootDir/build.gradle
:
subprojects {
tasks.withType(Test) {
maxParallelForks = Runtime.runtime.availableProcessors()
}
}
La réponse acceptée ci-dessus fonctionne mais la documentation Gradle ici vous suggère d'utiliser
maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
J'ai essayé les deux et après avoir testé les deux sur un Mac Core Pro Intel Core i7 à 2,3 GHz avec 16 Go RAM (4 cœurs avec hyperthreading)
test {
maxParallelForks = Runtime.runtime.availableProcessors()
}
et
test {
maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
}
L'approche suggérée par la documentation Gradle a produit des temps de réponse plus rapides pour notre suite de tests unitaires: 7 minutes contre 8 minutes (par rapport aux 13 minutes d'origine). De plus, mon processeur Mac n'a pas été arrimé et le ventilateur n'a pas démarré.
Je suppose qu'il y a conflit sur une ressource partagée - même si ce n'est que celle de la machine sur laquelle nous exécutons les tests unitaires.