8
votes

AttentionExceptionTribute ne fonctionne pas dans le Mstest

C'est bizarre, mais tout à coup, le attenduExcepteattribute code> quitter le travail pour moi l'autre jour. Je ne sais pas ce qui a mal tourné. Je cours vs 2010 et vs 2005 côte à côte. Cela ne fonctionne pas dans VS 2010. Ce test doit réussir, mais il échoue:

[TestMethod]
[ExpectedException(typeof(ArgumentNullException))]
public void Test_Exception()
{
    throw new ArgumentNullException("test");
}


2 commentaires

Je comprends la même chose, mais je ne trouve rien à ce sujet. Quelqu'un d'autre a le même problème. Stackoverflow.com/questions/2628965/... < / a>


Avez-vous le débogage ou l'exécution du test?


5 Réponses :


1
votes

J'ai eu le même problème, mais j'ai finalement réussi à le faire fonctionner. Pas vraiment sûr de savoir comment mais voici une liste de choses que j'ai faites entre cela ne fonctionne pas quand elle a commencé à travailler à nouveau.

  • converti le projet testé sur .NET 4
  • Désactivé Codecoverage
  • Le codecoverage revint à nouveau
  • a fait un reconstituer sur le projet de test

    Je ne sais pas le bit le corrigé cependant. Quoi qu'il en soit, j'espère que cela vous aidera!


0 commentaires

12
votes

ne pas ressusciter un fil mort, mais je suis tombé sur ceci quand tout cela est arrivé à moi, au cas où cela peut aider les autres. J'ai finalement retrouvé ce que le problème était, qui peut corréler avec ce que Jon a trouvé. L'attribut attenduException semble fonctionner uniquement si le projet est reconnu comme un test de test. (Pas seulement un assemblage Recharger le projet et reconstruire. Les tests attendus d'exception devraient maintenant passer.

Nous avons rencontré ce problème lors de la normalisation des tests de Nunit à Mstest (merci à TFS CI Build) et que vous avez constaté qu'après avoir remplacé AsserSert.throws <> belle simplicité et flexibilité avec [Type d'exception (type)]. Sans parler de la perte de [TESTCASE ()]!) Les tests d'exception attendus ont échoué sans raison. Basculer à Nunit avec une impression attendue, pas de problème, Mstest refuse de l'exécuter.

Inutile de dire que je vais pousser pour obtenir Nunit Retour, après avoir trouvé: http://blog.shawnewnewawnwallace.com/2011/02/Running-nunit-TestS-in-tfs-2010.html < / a>


3 commentaires

Salut Steve! Il n'y a aucune honte à répondre à de vieilles questions, en particulier avec une si grande réponse! Merci!


J'utilise effectivement la construction de la Nunit (Assert.thRows) de l'intérieur du mstest ;-)


Cela a également travaillé pour moi à VS2012. Mais il est encore plus étrange: j'ai de nombreuses bibliothèques de classe nature avec cette impression attendue qui fonctionne comme un charme. Même le projet incriminé une fois fonctionné et il a soudainement cessé de fonctionner.



2
votes

Ce fil est arrivé sur une recherche Google et, depuis que je l'ai rencontré aujourd'hui aussi, mais pour une raison différente, j'ajouterai un autre anser possible ici.

J'ai eu des tests unitaires pour certains fonction avec le [éventuellement exception] attribut en place, mais une mise à jour récente de code a apporté la fonction testée async pour améliorer les performances.

Ceci a provoqué ces tests unitaires à échouer. La solution simple consistait également à rendre l'unité-test ASYNC, à la tâche de retour et à l'attente de l'appel de fonctions: xxx


0 commentaires

2
votes

J'ai une autre réponse, qui n'a pas besoin de modifier le fichier CSPROJ. Il semble que la cause fondamentale n'était qu'une référence manquante. J'ai ajouté microsoft.visualstudio.qualitytools.unittestframework.dll code> aux références du projet et à l'aide de Microsoft.visualstudio.testTools.UntestSting; code> dans les fichiers de code. La DLL peut être trouvée dans

C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\


0 commentaires

0
votes

et une autre réponse. Aujourd'hui, j'ai mis à jour un projet Visual Studio 2008 (Net35) Mstest à Visual Studio 2017 (Net462). Le Réponse de Marcel Kalinowski fait référence à un Microsoft.visualstudio.qualityTools.UnittestFramework.dll - Dans mon cas, c'était là, mais la référence indiquait l'ancienne version VS2008, tandis que le reste a été mis à niveau. Aucune marque d'exclamation, aucune erreur de compilation et tous tests d'unités ne fonctionnaient comme prévu, à l'exception de ceux avec un [Evidentiel d'exception] attribut.

Suppression de la référence et ajouter la version actuelle (10.0.0.0 pour moi) rendit ces tests.


0 commentaires