web-dev-qa-db-fra.com

Erreur lors de l'exécution des tests unitaires dans Visual Studio: il manque des objets de test

L'erreur suivante s'affiche lors de l'exécution de tests unitaires à partir de visual studio à l'aide de resharper: 

Test-case objects missing for the following elements: ... Rebuild the project and try again

Dans l'info-bulle à côté de la méthode de test unitaire, il est écrit: Inconclusive: Test not run et je pense qu'il est dit Unit test skipped à un moment donné. Resharper affiche une icône yeux gris.

Il y a aussi un problème étrange avec Test Explorer de Visual Studio. Il ne montrera pas tous mes tests unitaires. En fait, il manque plus de 200 de mes tests unitaires. Ils n'apparaissent tout simplement pas dans la fenêtre Test Explorer. J'ai une poignée de tests qui apparaissent et se dérouleront très bien.

Ce que j'ai déjà essayé: redémarrer ma machine, nettoyer, reconstruire, changer tous les projets dépendants pour qu'ils utilisent le même framework .net 4.7.

J'utilise VS 2017 .net Framework 4.7, Resharper et MSTest. Tous avec les dernières mises à jour et versions.

24
goku_da_master

J'ai rencontré cette erreur après avoir supprimé tous les paquets de nuget car j'avais changé de version .net et je n'avais besoin d'aucun d'entre eux pour la compilation.

après avoir réinstallé le paquet nuget MSTest.TestAdapter re-sharper a commencé à exécuter mes tests unitaires comme prévu

Install-Package MSTest.TestAdapter

18
workabyte

Je sais que cela ne répondra pas à la question du PO, puisqu'il/elle a essayé, mais peut-être que cela aidera quelqu'un d'autre. 

Pour moi, un simple redémarrage de Visual Studio a résolu les objetsTest-case manquants pour les éléments suivants: ... Reconstruisez le projet et réessayezproblem. 

16
gabrielkerekes

Après avoir frappé ma tête pendant un jour, Test Explorer a fonctionné. C'était la plate-forme cible. 

Dans les propriétés du projet de test unitaire, sous Générer, la cible de la plate-forme était x64. Je l'ai basculé sur AnyCPU et Test Explorer a immédiatement relevé mes tests unitaires manquants. Cependant, le donneur d'ordre me donne toujours la même erreur. Je mettrai à jour si je trouve la solution pour cela. En attendant, je peux au moins exécuter et déboguer mes tests unitaires maintenant.

3
goku_da_master

Mon problème utilisait la mauvaise configuration de construction. 

Ma solution comporte plusieurs projets et plusieurs configurations différentes. J'avais choisi par inadvertance une configuration de projet incorrecte, qui n'était pas configurée correctement pour inclure le projet de test que j'essayais d'utiliser.

0
Richard Moore

J'ai mis à jour MSTest.TestAdapter de 1.1.18 à 1.3.2. Cela a finalement résolu le problème pour moi.

0
ekenman

J'ai rencontré cela lors de l'utilisation d'un projet F #. Dans mon cas, c’est l’inclusion de crochets dans le nom de la méthode d’essai qui est à l’origine du problème;

[<TestMethod>]
member x.``E is updated where generic form or visit should include (this) UPDATED VISIT AND FORM``() =
        let origExpr = "visit:form:INTQ1AB"
        let checkedExpr = "VISIT2:FormFour:INTQ1AB"
        ...

a abouti à un test non concluant, alors que supprimer les crochets autour de '(ceci)' comme ci-dessous

[<TestMethod>]
member x.``E is updated where generic form or visit should include this UPDATED VISIT AND FORM``() =
        let origExpr = "visit:form:INTQ1AB"
        let checkedExpr = "VISIT2:FormFour:INTQ1AB"
        ...

permis au test de se terminer avec succès.

0
pilsdumps

pour moi, cela est dû au fait que j'ai installé le paquet Nuget pour FLEE , cette ligne a été insérée dans le fichier app.config de mon projet de test:

<dependentAssembly>
  <assemblyIdentity name="System.Reflection" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>

Comme je n'ai pas la version 4.1.2.0 installée sur ma machine (j'ai 4.0.0.0) quelque part, le projet de test échoue avec ce "message d'erreur" très déroutant

Une fois que j'ai installé une version antérieure (1.05) du paquet FLEE (qui utilise 4.0.0.0) et que j'ai changé le numéro de version en 4.0.0.0 dans le bindingRedirect de mon app.config, tout était à nouveau sain d'esprit.

0
Daniël Tulp