Je travaille actuellement sur une solution qui a actuellement 32 Unittests. J'ai travaillé avec le lanceur de test de resharper - qui fonctionne très bien. Tous les tests sont en cours d'exécution, tous les tests affichent le bon résultat de test. Maintenant, un collègue m'a dit que les tests ne s'exécutaient pas sur sa machine à l'aide de l'explorateur de tests Visual Studio. Ils ne fonctionnent pas non plus sur ma machine, je peux donc exclure certains fichiers manquants locaux ou quelque chose.
L'explorateur de tests affiche tous les tests unitaires, mais une fois que vous cliquez sur "Tout exécuter", tous les tests sont grisés et ne montrent aucun résultat du test:
- Toutes les classes de test sont publiques
- Toutes les classes de test ont l'
[TestClass]
attribut déclaré - Toutes les méthodes de test utilisent l'
[TestMethod]
attribut - Le code de productivité et les projets de test ciblent .NET 3.5.
- Je l' ai déjà essayé de construire ma propre solution, et / ou supprimer tous
obj
,bin
,Debug
etRelease
dossiers
J'apprécierais tous les indices qui pourraient provoquer un tel comportement.
Réponses:
Si vos projets ne sont pas tous AnyCpu, vous pouvez également vérifier que les 2 paramètres suivants correspondent:
[Projet de test de clic droit] -> propriétés -> Build -> Platform target - par exemple x64
[Menu principal] -> Test -> Paramètres de test -> Architecture de processeur par défaut -> X64
J'ai constaté que lorsque ceux-ci ne correspondaient pas, mon projet de test échouait silencieusement.
la source
J'ai eu le même problème dans VS 2017. Dans mon cas, il a été résolu en redémarrant VS.
la source
Si vous utilisez NUnit plutôt que MSTest, vous aurez besoin de l' extension NUnit Test Adapter pour Visual Studio 2012/2013.
la source
Microsoft.NET.Test.Sdk
partir de NugetJ'ai dû changer mes méthodes de test asynchrone pour renvoyer Task au lieu de void.
Les tests étaient alors actifs et exécutables dans l'Explorateur de tests.
la source
async void Foo()
et leurs analyseurs ne se plaignent pas, mais ils pourraient certainement en ajouter un qui le ferait. cc: @bradwilsonVérifiez sur quel framework les tests sont écrits (par exemple nunit, xunit, VS test, etc.) et assurez-vous que vous avez installé l'adaptateur de test / l'extension de runner.
Pour moi, c'était l'adaptateur de test NUnit 3 qui manquait et j'ai confirmé le numéro de version requis en regardant la version de dépendance nunit.framework (sélectionnez le .dll dans l'arborescence des dépendances dans l'Explorateur de solutions et appuyez sur F4 pour afficher la fenêtre Propriétés).
la source
Microsoft.VisualStudio.QualityTools.UnitTestFramework
( je ne sais pas quelle version). Problèmes résolus où la méthode n'est pas exécutée (ou trouvée) en supprimant cette référence et en installant le dernier (v2.1.0) MSTest.TestAdapter (et Framework)Microsoft.VisualStudio.TestTools.UnitTesting
obsolète? J'ai eu quelques tests utilisant cela qui ont soudainement cessé de fonctionner comme ci-dessus après avoir rajouté des références à un projet dont ils dépendaient.J'ai lutté avec ça pendant un jour et demi. alors voici ce que j'ai fait pour le résoudre:
Symptômes
Enquête
Étant donné que tous les packages ont été mis à jour lors de la mise à jour du framework .net, j'ai commencé par les différences entre les projets en cours et non opérationnels. Le premier indice était que les 3 projets utilisaient: MSTest.TestAdapter et MSTest.TestFramework
Naturellement, je suis allé dans la liste déroulante -> Console de sortie -> Test dans VS 2019 et j'ai regardé la sortie. Rien d'utile là-bas.
Première étape de la solution : mettez à jour MSTest.TestAdapter et MSTest.TestFramework vers la version 2.0.0
Deuxième étape de la solution : Maintenant, la console de sortie -> La sortie de la liste déroulante Test a commencé à afficher les uns après les autres, les packages manquants et les redirections de liaison incorrectes
Troisième étape de la solution : ajoutez manuellement les packages manquants. Pour moi, c'était
Étape 4 de la solution : Suppression / Correction des redirections de liaison inutiles.
J'espère que cela aidera quelqu'un d'autre.
la source
ToolsVersion
et cogner le mien a tout gâché. Tout ce que je peux dire, c'est "l'acheteur se méfie" pour les tests unitaires MS et soyez prêt à remplacer vos fichiers * .csproj à tout moment, ce truc est étroitement intégré et dépend de la version.Clean-Rebuild
solution a fonctionné pour moi.la source
J'ai eu ce problème et pour moi, il était dû à plusieurs projets de test avec différentes versions de:
La consolidation des packages nuget pour les projets afin qu'ils soient identiques a résolu le problème pour moi.
la source
Eu le même problème après l'installation propre de VS 2019. Les tests sont trouvés mais pas exécutés avec "Une erreur inattendue s'est produite". Corrigé en configurant x64 au lieu de x86 qui était sélectionné par défaut.
la source
J'ai trouvé que dans le projet, il ne faisait pas référence à l' assemblage Microsoft.VisualStudio.QualityTools.UnitTestFramework . Au lieu de cela, il faisait référence à Microsoft.VisualStudio.TestPlatform.TestFramework et Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions . Lorsque j'ai supprimé ces deux références et ajouté la référence à l' assemblage Microsoft.VisualStudio.QualityTools.UnitTestFramework , les tests qui étaient précédemment marqués du point d'exclamation bleu sont soudainement devenus actifs et ont commencé à fonctionner.
la source
Dans mon cas, c'était parce qu'un projet de test dans ma solution avait les packages de nuget MSTest.TestFramework et MSTest.TestAdapter installés, mais les autres non. Ces packages n'étaient apparemment pas nécessaires pour exécuter des tests jusqu'à ce qu'un projet de la solution les ait installés.
Le problème a été résolu en installant ces packages sur les projets de test qui les manquaient.
la source
Ce qui a résolu le problème pour moi, c'est la mise à niveau des packages MS.Test nuget
la source
Install
Nunit3TestAdapter
Nuget a résolu ce problèmela source
La configuration de l'architecture du processeur pour les projets AnyCPU dans l'Explorateur de tests a résolu mon problème! Voir la capture d'écran ci-dessus.
la source
Dans mon cas, j'avais une
async void
méthode et j'ai remplacé parasync Task
, donc le test s'est déroulé comme je m'y attendais:remplacer par :
la source
J'avais les mêmes symptômes.
Veuillez vous assurer que l'extension Visual Studio appropriée est installée via Outils - Extensions et mises à jour. Dans mon cas, j'ai dû installer XUnit et Specflow à partir de l'option En ligne.
Ensuite, nettoyez la solution et reconstruisez-la.
Si cela ne fonctionne toujours pas, effacez votre répertoire temporaire (recherchez% temp% dans le menu Démarrer, recherchez et supprimez tout le contenu de Temp)
Et puis enfin essayez de désinstaller Resharper qui a finalement résolu mon problème.
la source
Vous pouvez afficher la sortie d'erreur de votre testeur en ouvrant le panneau de sortie (vue -> sortie) et en choisissant "tests" dans la liste déroulante "Afficher la sortie de"
De plus, si Resharper est installé, vous pouvez ouvrir un fichier de test et survoler le cercle de test à côté d'un test pour obtenir des informations d'erreur supplémentaires.
Cliquer dessus vous amènera à une fenêtre avec des informations plus détaillées. Vous pouvez également ouvrir cette fenêtre en allant dans Extensions -> Reshaper -> Windows -> Résultats d'exploration des tests unitaires
la source
Ici, c'était le projet de test qui n'était pas marqué pour être construit:
Build -> Configuration Manager ... -> check build pour votre projet de test
la source
Depuis que je suis arrivé ici avec ce genre d'erreur, je poste mon problème / solution:
Symptômes:
Problème:
Une erreur s'est produite dans le code qui lève une exception dans un autre thread. Toutes les assertions de test ont réussi mais cela a annulé l'exécution du test. Je pouvais voir l'erreur dans la "Sortie des tests" (NullException).
la source
Avait les mêmes symptômes, dans mon cas, c'était la version du SDK dotnet core qui était le problème.
Les projets ciblaient 2,2 et ont pu être construits en utilisant 3,0. Après avoir installé la dernière version du SDK 2.2, ils ont pu s'exécuter.
la source
Ce problème est également observé lorsque la méthode de test en cours d'exécution lève une exception StackOverflowException , ce qui oblige le testeur à abandonner l'exécution du test, ce qui entraîne la sortie
0 tests run
.Pour trouver le coupable et le résoudre, placez un point d'arrêt au début des méthodes décorées TestInitialize et TestMethod , exécutez le test unitaire en mode débogage, passez à l'étape (F10) jusqu'à ce que l'exception soit levée.
la source
J'ai essayé de nombreuses options avec Visual Studio 2019 version 16.4.6 et
Microsoft.VisualStudio.TestTools.UnitTesting
, mais pour l'instant, le seul moyen d'exécuter des tests avec succès était d'appeler la commande suivante dans la consoleLes tests sont découverts dans l'Explorateur de tests mais le résultat est "Non exécuté".
La mise à jour de Visual Studio n'a pas aidé.
Avoir résolu le problème avec «Aucun test ne correspond au filtre de cas de test donné FullyQualifiedName» en exécutant des mises à jour vers la dernière version pour les packages suivants:
la source
Pour moi, la solution consistait à changer les paramètres de Resharper Unit Testing "Architecture de plate-forme par défaut" en "x64"
la source
Pour moi, le redémarrage de VS2017 n'a pas fonctionné. J'ai dû nettoyer sln puis j'ai trouvé un fichier avec des tests qui ne s'exécutaient pas et n'exécutait que ce fichier. Après cela, j'ai tout couru et cela a fonctionné à nouveau normalement.
la source
J'avais une version différente des packages nuget NUnit (3.11.0) et NunitTestAdapter (3.12.0). Lorsque j'ai mis à jour NUnit vers la version 3.12.0, Visual Studio a exécuté des tests.
la source
Dans mon cas, cela a fonctionné pour mettre à jour les paquets nuget MSTest. Pourrait reproduire ce problème même sur un projet MSTest vierge et la mise à jour des packages a fonctionné.
la source
Pour moi, avoir une propriété appelée TestContext dans une classe de base provoquait ce comportement. Par exemple:
la source
Je peux dire d'après vos attributs que vous utilisez MSTest. J'ai eu un problème similaire: mes tests apparaissaient dans l'Explorateur de tests, mais lorsque j'essayais de les exécuter (soit en choisissant Exécuter tout, soit en les sélectionnant individuellement), ils ne le faisaient pas.
Mon problème était que j'avais créé le projet de test unitaire manuellement à partir d'un projet de bibliothèque de classes standard .NET vide. J'avais installé le
MSTest.TestFramework
package NuGet, mais pas leMSTest.TestAdapter
package. Dès que j'ai installé le package d'adaptateur, ils ont fonctionné comme prévu.Rétrospectivement, cela semble évident, mais lorsque vous créez des projets de test unitaire à partir d'un modèle, vous prenez ces choses pour acquis.
la source
Il est à noter que parfois les fichiers de l'adaptateur de test NUnit sont corrompus dans le dossier utilisateur C: \ Users [User] \ AppData \ Local \ Temp \ VisualStudioTestExplorerExtensions \ NUnit3TestAdapter.3.8.0 / build / net35 / NUnit3.TestAdapter.dll sous Windows 10 et qui empêche l'Explorateur de tests de fonctionner comme il se doit.
la source
J'utilise VS2019 avec .Net 4.7. J'ai installé l'extension NUnit v3 et modifié les paramètres de test pour utiliser X64. Mon projet de test unitaire est Any CPU (fonctionnerait si je le changeais en x64). Maintenant, je peux déboguer via mon code.
la source