0

Je veux faire des tests unitaires dans la bibliothèque de classes, où j'ai besoin des mêmes paramètres de configuration que dans le web.config de mon projet asp.net principal. Par conséquent, j'ai besoin de dupliquer un certain nombre de paramètres web.config dans ma bibliothèque de classes.Comment partager les paramètres entre web.config et la bibliothèque de classes lors des tests unitaires?

J'ai ajouté des paramètres dans l'onglet Paramètres des propriétés du projet de la bibliothèque de classes.

ensuite un fichier app.config est automatiquement ajouté au projet:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
     <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > 
      <section name="ExternalServices.CPR.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
     </sectionGroup> 
    </configSections> 
    <applicationSettings> 
     <ExternalServices.CPR.Properties.Settings> 
      <setting name="CprProdHostName" serializeAs="String"> 
       <value>direkte.cpr.dk</value> 
      </setting> 

Question 1. Quelle est la « meilleure pratique » façon de partager/dupliquer certains paramètres de la principale web.config à une classe bibliothèque qui doit exécuter des tests unitaires séparément mais avec la même configuration?

Question 2. Je souhaite lire les paramètres par leur nom. J'essaie de lire avec ConfigurationManager.AppSettings ["CprProdHostName"]; (using System.Configuration;) mais cela ne fonctionne pas, renvoie juste null?

Question 3. Quel est le but du fichier app.config? Parce qu'il n'y a pas d'ensemble d'actions Build et que le fichier n'est pas copié en sortie, il n'est jamais visible par défaut. Cela implique que je ne peux pas modifier ces paramètres en cours d'exécution. C'est assez étrange, non?

Répondre

0

espère que vous parlez de réglage de configuration web comme ci-dessous:

<configuration> 
    <appSettings> 
    <add key="HostName" value="www.hostname.com" /> 
    </appSettings> 
</configuration> 

s'il vous plaît vérifier ci-dessus une partie puis utilisez ci-dessous code pour récupérer la valeur de clé de HostName

ConfigurationManager.AppSettings["HostName"] 

Il faut aussi using System.Configuration;

+0

Non, je ne parlais pas de web.config. Je parlais des propriétés du projet standard - créées dans l'onglet "Paramètres" ... Web config est également intéressant pour moi, mais comme elles sont dans un autre projet, un projet web, j'ai décidé de dupliquer les paramètres dans ce "Paramètres" du projet, comme je l'ai discuté ci-dessus. –