2017-09-21 9 views
6

J'ai effectué des tests de petite taille pour un projet Xamarin. Ils fonctionnent très bien sur le terminal de mon Mac Mini (plate-forme de construction jenkins). Quand je lance la même commande sur jenkins, je reçois une erreur étrange que je ne peux pas expliquer. J'ai essayé de fournir des chemins de fichiers complets et j'ai exécuté la commande en tant que root et cette erreur persiste. Si quelqu'un a une expérience avec cela, il serait grandement apprécié.Problème lors de l'exécution de tests NUnit sur Jenkins

Commande pour le processus de construction:

nuget restore CoreTests.sln 
msbuild CoreTests.sln /t:Build 
mono nunit3-console.exe CoreTests.dll 

Erreur de sortie:

NUnit Console Runner 3.7.0 Copyright (c) 2017 Charlie Poole, Rob Prouse

Runtime Environment OS Version : MacOSX 16.6.0.0 CLR Version: 4.0.30319.42000

fichiers test CoreTests/CoreTests/bin/Debug/CoreTests.dll

erreurs, échecs et avertissements

1) Erreur: ApplicationName = 'mono', CommandLine = '- exécution = v4.0.30319 " /Users/falconbot/Documents/NUnit/nunit-agent.exe " 8e81b5fe-8dba-4da0-8612-5c0cabe9d40f tcp: //127.0.0.1: 55001/TestAgency --pid = 97532 ', CurrentDirectory =' ', Natif error = Impossible de trouver le fichier spécifié sur System.Diagnostics.Process.StartWithCreateProcess (System.Diagnostics.ProcessStartInfo startInfo) [0x002dc] dans < 70507a44a84041d599bbfa8f3d0ea5b1>: 0 à System.Diagnostics.Process.Start() [0x0003a] dans < 70507a44a84041d599bbfa8f3d0ea5b1>: 0 à (wrapper remoting-invoquer-with-check) System.Diagnostics.Process: Start() à NUnit.Engine.Services.TestAgency .LaunchAgentProcess (paquet NUnit.Engine.TestPackage) [0x002f2] dans < 1e8ad6af4c6f4686ad7e5f9e67020b3b>: 0 à NUnit.Engine.Services.TestAgency.CreateRemoteAgent (paquet NUnit.Engine.TestPackage, System.Int32 waitTime) [0x00000] dans < 1e8ad6af4c6f4686ad7e5f9e67020b3b>: 0 à NUnit.Engine.Services.TestAgency.GetAgent (paquet NUnit.Engine.TestPackage , System.Int32 waitTime) [0x00000] à < 1e8ad6af4c6f4686ad7e5f9e67020b3b>: 0 à (wrapper remoting-invoquer-with-check) NUnit.Engine.Services.TestAgency: getagent (NUnit.Engine.TestPackage, int) à NUnit.Engine.Runners.ProcessRunner.CreateAgentAndRunner() [0x0003d] dans < 1e8ad6af4c6f4686ad7e5f9e67020b3b>: 0 à NUnit.Engine.Runners.ProcessRunner.RunTests (NUnit.Engine.ITestEventListener d'écouteur, filtre NUnit.Engine.TestFilter ) [0x0001f] dans < 1e8ad6af4c6f4686ad7e5f9e67020b3b>: 0

Résumé du test de test Résultat général: Échec Nombre de tests: 0, succès: 0, Échec: 0, Avertissements: 0, Inconclusive: 0, Ignoré: 0 Heure de départ: 18 28/09/2017: 18: 49Z Heure de fin: 28/09/2017 18: 18: 49Z Durée: 0,089 secondes

Résultats (nunit3) enregistré en tant que TestResult.xml Construire étape « Exécuter shell » a marqué la construction comme un échec

+0

Copiez-vous nunit3-console.exe manuellement? Il semble que la console ne trouve pas nunit-agent.exe, qui devrait être placé dans le même répertoire. – Chris

+0

J'ai abrégé la commande pour le poste. Il est stocké dans un répertoire appelé NUnit qui contient également nunit-agent.exe et le chemin d'accès complet au fichier nunit3-console.exe est utilisé lorsque je l'appelle dans jenkins. – user3459799

+0

peut-être afficher la sortie de débogage complet de Jenkins pourrait aider, et un coup d'oeil à votre configuration plus en détail – ldgorman

Répondre

1

à condition que vous obtenez à la troisième ligne sans erreur, je dirais qu'il devrait être:

nunit3-console.exe <workspace_relative_path_to_project_containing_tests>.dll 

Disclaimer: Je suis contributeur à la NUnit projet et auteur du paquet nuget Saucery3. Mais je ne suis pas un expert mono.

+0

Oui Je suis conscient que je peux exécuter les tests unitaires avec la DLL qui est construit. J'obtiens les mêmes résultats lorsque j'essaie d'exécuter les tests unitaires à partir de la DLL à partir de Jenkins mais fonctionne bien quand je cours depuis la ligne de commande moi-même. – user3459799

+0

Vous devriez exécuter nunit3-console.exe à partir d'un Windows Batch Step dans le cadre de la construction. nunit3-console.exe doit être dans votre% PATH% ou fournir le chemin complet c: \ rooted à nunit3-console.exe dans l'étape Windows Batch. –