Impossible d'utiliser ConfigurationManager dans un projet de test d'unité
Je suis en train d'écrire un test unitaire pour mon projet, mais il ne me laisse pas utiliser le Gestionnaire de Configuration. Aujourd'hui mon projet est mis en place comme
ASP.Net application (toutes les pages aspx)
ProjectCore (tous les C# les fichiers de modèle)
ProjectTest (tous les tests)
dans mon ProjectCore, je suis en mesure d'accéder le ConfigurationManager l'objet à partir du Système.De Configuration et de transmettre des informations sur le projet. Cependant, quand j'ai couru un test où le ConfigurationManager est impliqué, j'obtiens l'erreur
System.NullReferenceException: Object reference not set to an instance of an object.
Voici un exemple de test de
using System.Configuration;
[TestMethod]
public void TestDatabaseExists()
{
//Error when I declare ConfigurationManager
Assert.IsNotNull(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString
}
dans mes autres tests, ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString est ce que j'ai mis mes données de configuration de l'adaptateur chaîne et renvoie une erreur nulle sur les tests, mais pas quand je le fait d'utiliser le site web. Des idées?
source d'informationauteur willykao
Vous devez vous connecter pour publier un commentaire.
Il pourrait être l'un de plusieurs problèmes:
Vous n'avez pas ajouter de la chaîne de connexion dans votre application.config.
Vous faites un test de l'unité et de l'unité de tester votre concentration doit être le particulier méthode en train de tester, et devrait supprimer le superflu et de dépendances. dans ce cas, essayez moqueur/moleing(utilisation de Microsoft de la Mole et de Pex)
system.configuration
classe; ce qui vous permettra de donner une solution pour vous.Ce que je dis, une fois que vous installez MS taupes-et-pex -> dans votre projet de test de la solution -> cliquez-droit sur le système d'assemblage et de choisir de créer de la mole.
Qui vous donnera un grain de beauté ed version de la configuration de la classe qui à son tour aura un moqué de la version de
configuration class
-- à l'aide de laquelle vous pouvez contourner le problème auquel vous êtes confronté.Vous pouvez également utiliser la configuration spéciale des chemins avec le
ExeConfigurationFileMap
:Elle est liée à l' /noisolation paramètre dans la ligne de commande mstest.exe.
L'omission de l' /noisolation paramètre, il fonctionne.