2009-09-15 15 views
6

Je dois lire un paramètre de la section appsettings (défini dans app.config) dans un test unitaire. Nous utilisons mstest dans ce projet.app.config pour l'ensemble de test unitaire: comment faire fonctionner l'attribut 'fichier' des appsettings?

Dites ceci est le app.config:

<configuration> 
<appSettings> 
    <add key="MyAppSetting" value="MyAppSettingValue"/> 
</appSettings> 
</configuration> 

Voici le test correspondant, qui passe dans cette configuration:

[TestClass] 
public class ConfigurationTests 
{ 
    [TestMethod] 
    public void can_read_appsettings() 
    { 
     string value = ConfigurationManager.AppSettings.Get("MyAppSetting"); 
     Assert.AreEqual("MyAppSettingValue", value); 
    } 
} 

Maintenant, lorsque je tente de déplacer la section appSettings à une coutume. fichier de configuration, ce test échoue.

C'est ce que mon fichier app.config ressemble maintenant:

<configuration> 
<appSettings file='Custom.config' /> 
</configuration> 

J'ai ajouté le fichier Custom.config à mon projet (avec l'action de construction 'copie toujours'):

<appSettings> 
    <add key="MyAppSetting" value="MyAppSettingValue"/> 
</appSettings> 

En faisant la même chose dans une application console, cela fonctionne. Y at-il un moyen de faire ce travail dans un ensemble de test unitaire?

Répondre

8

J'ai trouvé la réponse. À l'aide de mstest, j'avais besoin de marquer le fichier 'Custom.config' comme un élément de déploiement dans le fichier 'localtestrun.testrunconfig'.

+0

Yay! J'adore configurer les choses pour arriver à ma configuration! –