Pourquoi Visual Studio 2019 n'exécutera-t-il pas mes tests unitaires?
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.
La solution s'est avérée être une combinaison de deux choses.
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.)
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!