2010-07-29 5 views
12

J'ai une DLL .NET 4 pour laquelle j'ai des problèmes pour générer des tests unitaires. J'utilise VS 2010 Standard. Tous les autres projets de la solution généreront des stubs de test unitaires pour les classes. Pour les autres assemblages, je peux aller dans le code existant, faire un clic droit sur le nom de la classe, et sélectionner "Créer des tests unitaires". Je reçois la fenêtre de sélection qui va bien.VS 2010 Erreur lors de la génération des tests unitaires

Le seul assemblage dont j'ai vraiment besoin pour obtenir une couverture ne générera pas les talons de test en utilisant la même méthodologie mentionnée ci-dessus. Je vais à une classe dans le projet/assemblage, clic droit, sélectionnez « Générer des tests unitaires », et je suis rencontré l'erreur suivante:

Unit Test Generation Error: The follow error was encountered while reading module 'xx.Core': Could not resolve type reference: [System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxx]System.Web.Routing.RouteValueDictionary

Pour autant que je peux dire, il n'y a pas de références directes dans le projet à la version Framework 2.0 de System.Web mentionné dans le message d'erreur. La recherche dans le répertoire qui contient le projet et les fichiers .CS avec un outil appelé grepWIN pour voir si le texte de cette référence existe dans les fichiers ne donne aucun résultat. Est-il même possible de référencer à la fois la version 2.0 et 4.0 de la dll system.web en même temps, et si oui, pourquoi voudriez-vous faire cela?

Des idées sur la façon de se débarrasser de ce message d'erreur afin que je puisse correctement remplacer certains tests unitaires?

+1

J'ai la même expérience mais malheureusement aucune réponse :-( –

Répondre

0

Utilisez-vous NUNIT pour le test unitaire? Si tel est le cas, Nunit pointe par défaut vers .Net 2.0. Vous devez apporter les modifications appropriées au fichier nunit.exe.config.

Pourriez-vous s'il vous plaît, dans l'Explorateur Windows, naviguez jusqu'à C: \ WINDOWS \ Microsoft.NET \ Framework. Là, vous verrez un certain nombre de dossiers avec des noms de ce genre: v1.0.xxxxx, v1.1.xxxxx, ..., v4.0.xxxxx. Notez le nom exact du dossier v4.0.xxxxx. Avec un éditeur de texte, ouvrez le fichier nunit.exe.config, qui se trouve dans ce dossier: C: \ Program Files \ NUnit 2.5.2 \ bin \ net-2.0.

Sous ajouter:

<startup> <requiredRuntime version="v4.0.xxxxx" /> </startup> 

[remplacer xxxxx par les bons chiffres que vous avez noté]

et sous ajouter:

<loadFromRemoteSources enabled="true" /> 

Le changement ci-dessus a fonctionné pour moi. J'espère que pour les autres personnes qui font face à ce problème.

+2

OP utilise la capacité de génération de tests VS2010 devrait créer des stubs pour les tests unitaires, avec le fichier, la classe, et toutes les autres installations de plomberie. classe afin que les tests unitaires puissent être implémentés avec NUnit Framework. – GregC

1

J'ai eu le même problème avec ObservableCollection. Ma «solution» consistait à mettre à niveau tous les projets référencés et leurs projets référencés vers .NET 4.0. Ensuite, cela a fonctionné ... Cependant, cela semble un peu étrange et j'aurais pu faire autre chose qui a causé la disparition du problème.

1

J'ai récemment eu un problème similaire avec un de mes projets. Le problème était que, après avoir construit ma bibliothèque, j'ai renommé le fichier dll. Mon projet référençant la dll toujours bien construit, cependant j'ai reçu une erreur similaire lors de la génération de tests unitaires jusqu'à ce que je renommer la DLL à son nom d'origine quand il a été construit.

Questions connexes