Comment pouvez-vous utiliser “externe” des fichiers de configuration (c'est à dire avec configSource) avec un MSTest projet de tests unitaires?
Pour des raisons de simplicité, j'ai généralement la division d'un lot de ma configuration (c'est à dire le contenu de l'application.config et web.config) en séparer .les fichiers de configuration, et ensuite de référence de fichier de configuration principal à l'aide de la "configSource' attribut. Par exemple:
<appSettings configSource="appSettings.config"/>
puis de placer toutes les paires clé/valeur dans ce appSettings.fichier de configuration au lieu d'avoir cette ligne dans le fichier de configuration principal:
<appSettings>
<add key="FirstKey" value="FirstValue"/>
<add key="SecondKey" value="SecondValue"/>
...
</appSettings>
Généralement, cela fonctionne très bien avec l'application elle-même, mais je rencontre des problèmes lorsque vous tentez d'écrire des tests unitaires qui, pour quelque raison que ce soit, besoin d'obtenir une certaine valeur à partir d'une section de configuration stocké dans l'un de ces fichiers externes. (Je comprends que la plupart de ces personnes ne seraient susceptibles d'être considérés comme des "tests d'intégration", comme ils dépendent de la Configuration du système, et j'ai "pure tests unitaires" ainsi, mais ce sont pas le problème. Je suis vraiment à la recherche pour vérifier que ces valeurs de configuration sont récupérées correctement et impact sur le comportement dans le bon sens).
En raison de la façon dont MSTest compile et des copies de la sortie d'obfuscation-à la recherche des dossiers qui sont différentes de chaque essai (plutôt que de le " bin " du dossier, comme vous pourriez le penser), il ne semble jamais être en mesure de trouver ces fichiers externes tandis que les tests sont en cours d'exécution. J'ai essayé de déconner avec le poste de construire des actions pour faire ce travail mais avec pas de chance. Est-il un moyen d'avoir ces fichiers externes copié dans le dossier de sortie correcte au moment de l'exécution?
OriginalL'auteur Jesse Taber | 2008-09-30
Vous devez vous connecter pour publier un commentaire.
Trouvé:
Si vous modifiez le test de configuration (en double cliquant sur le .testrunconfig fichier qui est mis dans la " Solution des Éléments de solution de dossier lorsque vous ajoutez une nouvelle unité de test), vous obtenez un essai de dialogue de configuration. Il y a une section appelée "Déploiement", où vous pouvez spécifier des fichiers ou des dossiers entiers à partir de n'importe où dans la solution qui peut être copié avec la compilation des assemblées au moment de l'exécution dans le dossier approprié.
De cette façon, je peux maintenant en fait il suffit de définir la plupart de ma configuration dans un ensemble de externe .fichiers de configuration et de les avoir copiées automatiquement à l'exécution de chaque test.
OriginalL'auteur Jesse Taber
Essai configurations sont un peu gênant lorsque vous essayez d'exécuter des tests en dehors de Visual Studio.
Pour l'exécution de ligne de commande à l'aide de MSTest, elles deviennent très lourd à garder "propre".
Ils sont aussi des "global" à la solution externe, les fichiers seront copiés pour chaque projet de test.
Je préfère de beaucoup le
DeploymentItem
attribut.Fait les tests indépendants de la .testrunconfig fichiers.
OriginalL'auteur
écrire ceci dans votre connectionString. Première ConnectionString.config n'est pas existe.
<"connectionStrings configSource="ConnectionString.config"> "
ouvrez l'invite de commande (CMD) en administrateur privilégié.
C:\Windows\Systems32>
mklink "C:\Link To Folder\....\ConnectionString.config" "C:\Users\Name\Original Folder\.....\...\Secure ConnectionString.config"
enfin, il crée ConnectionString fichier de configuration à l'emplacement spécifié. et fonctionne avec succès.
OriginalL'auteur Ghebrehiywet