0
votes

Comment puis-je corriger les tests NUnit qui réussissent localement, mais échouent dans Jenkins?

J'ai un test unitaire qui réussit localement dans Visual Studio et sur la ligne de commande, mais il échoue lorsque Jenkins construit le pull request .

Il y a 29 tests au total, mais un seul échoue et je ne trouve pas de raison pour laquelle cela se produit.

La méthode pour Le test est le suivant:

RuleFor(url => url).Must(url => Uri.TryCreate(url, UriKind.Absolute, out Uri uriResult))
                .OnFailure((url) => throw new CustomException($"The URL {url} provided is not a valid URL"));

Le test unitaire: Assert.Throws (() => _sut.Validate ("/ image.png"));

L'erreur: CustomException attendue mais trouvée nulle

J'utilise . NET Core 3.1 sous Windows et les tests dans Jenkins sont en cours d'exécution dans Docker .

Il semble que le problème soit qu'il ne réussit que sous Windows. J'ai essayé sur Mac, mais cela échoue :(


0 commentaires

3 Réponses :


0
votes

Dans le passé, j'ai eu un problème similaire au vôtre et c'était en fonction de l'ordre dans lequel les tests étaient exécutés et pourquoi il réussissait localement.

Assurez-vous que vos tests ne dépendent en aucun cas des autres.


0 commentaires

0
votes

Je pense que ce n'est pas un problème Jenkins. Je pense que c'est un problème de cas type.

Le code _sut.validate est capable de générer l'URI correct.

Je suppose que Jenkins convertit en interne l'URL fournie pour chaque conteneur (micro-service) et résout le nom correctement. Le système testé fonctionne correctement et crée l'URL avec succès.

Veuillez modifier votre URL d'entrée et votre application commencera à générer une erreur.


0 commentaires

0
votes

La raison était que localement fonctionnait bien parce que j'étais sous Windows. Dans le menu fixe, le conteneur n'était pas un conteneur Windows, il a donc reconnu la chaîne comme un CHEMIN LOCAL absolu car Uri prend également en charge les chemins.

J'ai fini par modifier le test unitaire et ajouté une vérification supplémentaire.


0 commentaires