Pourquoi Visual Studio 2019 n'exécutera-t-il pas mes tests unitaires?


JamesFaix

Je constate un comportement très étrange pour les tests NUnit dans VS2019, où la même solution fonctionne bien dans VS2017. Il y a plusieurs projets de test NUnit dans mon âme.

Dans VS2017 avec l'extension NUnit Runner installée, je peux voir tous mes tests dans la fenêtre de l'Explorateur de tests et le bouton «exécuter tout» fonctionnera et exécutera tous les tests. Certains développeurs de mon organisation utilisent Resharper au lieu de l'extension NUnit et cela fonctionne également.

J'ai arrêté d'utiliser Resharper car à mesure que VS introduit plus de fonctionnalités, Resharper l'a rendu si lent que VS est inutilisable.

Dans VS2019, la fenêtre de l'Explorateur de tests affichera tous mes tests unitaires (même sans l'extension NUnit installée). Si je clique sur "tout exécuter", il n'exécutera aucun test et la fenêtre Sortie indiquera 0 test découvert. Des collègues ont déclaré que Resharper exécutera tous les tests sans problème. Si je clique avec le bouton droit sur un seul projet de test et n'exécute que ces tests, certains projets exécuteront des tests, mais pas tous.

Pour certains projets, j'ai essayé d'installer le package nuget NUnit3TestAdapater et cela permettra à VS2019 d'exécuter le test de ce projet si seul ce projet est sélectionné. Cela ne fonctionne pas pour tous les projets et cela ne fonctionne toujours pas pour "exécuter tout".

Quelqu'un sait-il ce qui pourrait en être la cause et ce qui pourrait y remédier? J'ai mis à jour la dernière version de NUnit (3.12) et le dernier TestAdapter (3.16) pour tous ces projets.

Cela a été une vraie douleur pendant environ un an, car je dois garder VS2017 et 2019 tous deux installés, et je dois former de nouveaux développeurs sur la façon de contourner ce problème étrange.

JamesFaix

La solution s'est avérée être une combinaison de deux choses.

  1. Dans le menu supérieur, accédez à Test> Options et désactivez «Découvrir les tests en temps réel à partir de fichiers source C # et Visual Basic .NET». Cette option semble incompatible avec les tests paramétrés. Le problème est que les tests paramétrés n'existent pas dans le code source mais sont générés par l'adaptateur de test lors de l'exécution. Cela a également résolu un problème que j'ai vu où le test "de base" du test paramétré apparaît dans l'Explorateur de tests comme un test non exécuté, même si seuls les cas de test spécifiques sont de vrais tests. (À mon avis, cela ne devrait pas être activé par défaut car les tests paramétrés sont extrêmement utiles, alors que voir de nouveaux tests dans l'Explorateur de tests sans compilation est une commodité triviale car vous devez compiler pour les exécuter de toute façon.)

  2. Utilisation du package NuGet pour l'adaptateur de test au lieu d'utiliser l'extension VSIX. Il semble que pour cette pièce, tout ce qui est requis est qu'au moins un projet de votre solution y fasse référence. Si au moins un projet y fait référence, tous les projets de test peuvent être exécutés. (Cela a du sens pour moi, car il est plus compatible avec les outils de génération en dehors de Visual Studio.)

Hourra pour briser les changements!

Articles connexes


Pourquoi rdmd n'exécute-t-il pas tous les tests unitaires?

John Doucette Malheureusement, je n'arrive pas à reproduire ce comportement dans un exemple de travail minimal, donc cela peut être trop vague. Cependant, je peux au moins dire ce qui ne cause pas le comportement. J'ai un module D contenant plusieurs classes a

Pourquoi Visual Studio 2012 ne trouve-t-il pas mes tests?

ctrl-alt-delor J'ai quelques tests qui utilisent le intégré Microsoft.VisualStudio.TestTools.UnitTesting, mais je ne peux pas les faire fonctionner. J'utilise Visual Studio 2012 Ultimate. J'ai une solution de deux projets; On a des tests, using Microsoft.Visua

Pourquoi nUnit n'exécute-t-il pas mes tests SpecsFor.Mvc?

BitSchupser J'essaie de mettre en œuvre des tests de bout en bout à l'aide de SpecsFor.Mvc . J'ai implémenté le test suivant: namespace Features { class AddEvents { public class when_a_user_adds_an_event: SpecsFor<MvcWebApp> {

Visual Studio 15.8.1 n'exécute pas les tests unitaires MS

csharpsql: Lorsque j'ai mis à jour Visual Studio vers la dernière version, 1 de mes projets de test a arrêté d'exécuter des tests et a généré ce message: Le projet de test {} ne fait référence à aucun adaptateur NuGet .NET. La découverte ou l'exécution de test

Visual Studio 2015 n'exécute pas les tests unitaires C++

imekon C'est bizarre. Premièrement, le chargement de la solution ne détecte pas les deux tests unitaires - je dois modifier le test unitaire et effectuer une reconstruction pour que les tests apparaissent dans l'explorateur de tests. Une fois que j'ai fait cel