web-dev-qa-db-fra.com

Tests non exécutés dans Test Explorer

Je travaille actuellement sur une solution qui compte actuellement 32 Unittests. Je travaille avec le programme de test resharper - qui fonctionne bien. Tous les tests sont en cours, tous les tests montrent les bons résultats. À présent, 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 du genre. 

L'explorateur de tests affiche tous les tests unitaires, mais une fois que vous avez cliqué sur "Run All", tous les tests sont estompés et ne donnent aucun résultat.

enter image description here

  • Toutes les classes de test sont publiques
  • Toutes les classes de test ont l'attribut [TestClass] déclaré
  • Toutes les méthodes de test utilisent l'attribut [TestMethod]
  • Le code de productivité et les projets de test ciblent .NET 3.5.
  • J'ai déjà essayé de créer ma solution et/ou de supprimer tous les dossiers obj, bin, Debug et Release

J'apprécierais toutes les allusions qui pourraient causer un tel comportement.

23
ElGauchooo

Si vos projets ne sont pas tous des AnyCpu, vous pouvez également vérifier que les 2 paramètres suivants correspondent:

  1. [Projet de test clic droit] -> propriétés -> Construire -> cible de la plate-forme - par exemple. x64

  2. [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.

37
Joseph Simpson

J'ai eu le même problème dans VS 2017. Dans mon cas, le problème a été résolu en redémarrant VS.

26
PabloR

Si vous utilisez NUnit plutôt que MSTest, vous aurez besoin de NUnit Test Adapter Extension pour Visual Studio 2012/2013.

6
Piers Myers

Vérifiez la structure sur laquelle les tests sont écrits (par exemple, nunit, xunit, VS test, etc.) et assurez-vous que vous disposez de la bonne extension adaptateur/runner de test. 

Pour moi, c'était l'adaptateur de test NUnit 3 qui manquait et j'ai confirmé le numéro de version requis en consultant la version de dépendance nunit.framework.

5
benmccallum

J'ai dû modifier mes méthodes de test asynchrone pour renvoyer une tâche au lieu de vide. 

Les tests étaient alors actifs et exécutables dans Test Explorer.

4
Kevin Mills

J'ai eu les mêmes symptômes.

Assurez-vous que vous avez la bonne extension Visual Studio installée via Outils - Extensions et mises à jour. Dans mon cas, j'ai dû installer XUnit et Specflow à partir de l'option en ligne.

Nettoyez ensuite la solution et reconstruisez-la.

Si le problème persiste, effacez votre répertoire temporaire (recherchez% temp% dans le menu Démarrer, recherchez et supprimez tout le contenu de Temp)

Et enfin, essayez de désinstaller Resharper, ce qui a finalement résolu mon problème.

3
Gina

Dans mon cas, c’est parce qu’un projet de test de ma solution possédait les packages de nugets MSTest.TestFramework et MSTest.TestAdapter mais les autres non. Apparemment, ces packages n'étaient 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 test pour lesquels ils manquaient.

2
SteveC

Ici c'était le projet de test qui n'était pas marqué pour être construit: 

Construire -> Gestionnaire de configuration ... -> vérifier la construction de votre projet de test

1
CountOren

Pour moi, le redémarrage de VS2017 n'a pas fonctionné. Je devais nettoyer sln puis trouvé un fichier avec des tests qui ne fonctionnaient pas et exécuter ce fichier uniquement. Après cela, j'ai tout couru et cela a fonctionné à nouveau normalement.

1
Ray Fan

Pour moi (pas tout à fait une solution), il fallait désélectionner le fichier .testsettings dans le menu [Test] -> [Paramètres de test] -> [{fichier actuel}] pour décocher le fichier actuellement utilisé.

Dans mon cas, ça commence donc. 

<TestSettings name="Local (with code coverage)" id="e81d13d9-42d0-41b9-8f31-f719648d8d2d" xmlns="http://Microsoft.com/schemas/VisualStudio/TeamTest/2010">
  <Deployment>
    <DeploymentItem filename="ConfigurationImportExportTest\Configurations\" />
    <DeploymentItem filename="output\Debug\" />
  </Deployment>
  <Execution>

Apparemment, le DeploymentItem interfère.

car c'était dans l'onglet Sortie:

Warning: Test Run deployment issue: The Assembly or module 'Microsoft.SqlServer.Management.SqlParser' directly or indirectly referenced by deployment item 'output\Debug\' specified by the test settings was not found.
.... more of the same

Cela ne me dit pas beaucoup.
On dirait que cela a à voir avec la façon dont tous les projets placent leurs produits de compilation dans un dossier \output\Debug commun

cependant cela ne semble pas l’empêcher . Il émet un autre avertissement mentionnant des choses comme

A testsettings or runsettings file with `ForcedLegacyMode = TRUE or VSMDI files are not supported by MSTest-V2.

Cela semble l'arrêter.

0
Robetto

Pour moi, la solution consistait à modifier les paramètres "Architecture de la plate-forme par défaut" de Resharper Unit Testing en "x64".

 enter image description here

0
Dharmesh Tailor

Ce qui a résolu le problème pour moi, c’était la mise à niveau des paquets de nuget MS.Test.

0
user2945722