J'essaye de créer un script Gradle pour exécuter des cas de test xunit pour mon projet .net. Le script ressemble à:Le script Gradle pour le test xunit ne fait rien ou lance execCommand == null
task xunitTests {
String contents = ""
FileTree tree = fileTree(dir: 'Unit Test',
includes: ['**/bin/Debug/**/[Project]*UnitTest.dll'], exclude:['**/bin/Debug/**/*[Project].dll'])
def reportDir = new File("${buildDir}",'report/xUnit')
tree.each { path ->
if (!executedDll.contains(path.name)) {
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'cmd', '/c', 'packages\\xunit.runner.console.2.2.0\\tools\\xunit.console.exe \"$path\" -xml xunit.xml'
standardOutput = stdout
}
executedDll.add(path.name)
println "Output:\n$stdout"
} else {
println "Excluded already executed dll $path.name"
}
}
}
Après je lance la tâche xunitTests la sortie je reçois est la tâche et la construction réussit la mise à jour, mais je ne vois pas d'exécution sur la console. Maintenant, quand j'exécute le code suivant:
task xunitTests (type:Exec) {
String contents = ""
FileTree tree = fileTree(dir: 'Unit Test',
includes: ['**/bin/Debug/**/[Project]*UnitTest.dll'], exclude:['**/bin/Debug/**/*[Project].dll'])
def reportDir = new File("${buildDir}",'report/xUnit')
tree.each { path ->
if (!executedDll.contains(path.name)) {
def stdout = new ByteArrayOutputStream()
commandLine 'cmd', '/c', 'D:\\LIS\\LIS.Encompass\\packages\\xunit.runner.console.2.2.0\\tools\\xunit.console.exe \"$path\" -xml xunit.xml'
standardOutput = stdout
executedDll.add(path.name)
println "Output:\n$stdout"
} else {
println "Excluded already executed dll $path.name"
}
}
Je reçois l'erreur comme "execCommand == null!". Qu'est-ce que j'oublie ici? J'ai juste besoin d'exécuter la liste des dll de test pour obtenir le fichier XML de sortie.
J'ai essayé la première solution que vous avez suggérée et cela n'a pas fonctionné. L'erreur que j'ai reçue était "doit spécifier au moins un assembly" et l'exception était la commande cmd terminée avec une valeur de sortie non nulle. Pouvez-vous m'aider? – jugal
Où ce message: _déclare-t-il au moins un assembly_ vient exactement? Je suppose que pas de la tâche 'Exec'. Je peux essayer de vous aider, mais je ne peux pas tester mes suggestions. – Opal
@jugal ce message vient d'ici: https://github.com/xunit/xunit/blob/master/src/xunit.console/CommandLine.cs#L134, il manque un élément de configuration .. – Opal