2 votes

dotnet core : impossible d'exécuter les tests unitaires

Je développe une application en utilisant dotnet core. Lorsque j'essaie d'exécuter les tests unitaires, je reçois le message suivant :

The active test run was aborted. Reason: Unable to communicate with test host process.

J'ai déjà vérifié mes fichiers .csproj, j'ai désinstallé et réinstallé dotnet core, j'ai essayé de reconstruire les projets, j'ai essayé de restaurer les paquets à nouveau, j'ai cherché des erreurs de code, mais je n'ai aucune idée de ce qui se passe.

J'utilise Ubuntu 16.04.

Le projet qui fait face à ce problème est disponible ici : https://github.com/andremteixeira/Personal-Accounting

5voto

Martin Ullrich Points 5894

Vous avez créé une exception de débordement de pile qui, malheureusement, plante complètement le processus de l'hôte de test

Le problème est que :

  1. Tout opérateur est appelé
  2. Cet appel CheckNullity
  3. CheckNullity a un a == null comparaison
  4. Ceci invoque la coutume bool operator == (Money a, Money b)
  5. Ce qui renvoie à bool IsEquivalent(Money a, Money b)
  6. Qui a une vérification pour a != null
  7. qui invoque l'opérateur personnalisé bool operator != (Money a, Money b)
  8. Qui a une vérification pour a == null
  9. Cela atterrit à 4. encore

si je remplace

if (a == null || b == null)

avec

if (Object.ReferenceEquals(a, null) || Object.ReferenceEquals(b, null))

sur CheckNullity ça casse le cycle et tous les tests sont exécutés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X