2010-06-22 7 views
4

Existe-t-il un moyen de conserver la structure de dossiers avec le déploiement MSTEST?Question de déploiement de dossier MSTEST

J'ai une situation avec du code existant où j'ai des fichiers .config dans un sous-dossier (appelé "Configuration"). Je peux spécifier ce dossier en utilisant le déploiement MSTEST mais, dans sa sagesse infinie, MSTEST copie simplement les fichiers de ce dossier dans le dossier d'exécution (TestResult \\ Out), c'est-à-dire qu'il ne crée pas un sous-dossier appelé Configuration. Cela royalement visse le code et il échoue. Je ne veux pas vraiment commencer à utiliser des scripts de pré-test compliqués pour créer des dossiers, etc.

Toute idée reçue avec gratitude.

Matt

Répondre

1

Je pense que j'ai eu le même problème ...

Mes tests ont utilisé un dossier appelé XSD et je voulais déployer le dossier dans le test répertoire \ OUT. Quand je l'ai fait, les fichiers dans le dossier xsd ont été copiés dans le répertoire test \ OUT, mais je voulais le dossier xsd dans le répertoire test \ OUT ...

Pour résoudre ce problème, j'ai lu this. (La machine de Wayback a des archives de cette page here)

+0

Cela n'a pas de travail pour moi – BradLaney

+0

en 2010 Vous, mon ami, êtes godlike. Assurez-vous de redémarrer VS2010, sinon il ne récupérera pas vos modifications. – Malachi

+0

En outre, il semble que vous avez besoin d'au moins un fichier dans le répertoire sinon MSTest ne le prendra pas – Malachi

1

Si vous utilisez l'attribut DeploymentItem, il faut un second argument pour le nom du répertoire dans lequel copier les fichiers. Si vous utilisez le même nom que votre dossier, il conserve tout.

Pour utiliser votre cas de test que vous feriez:

[DeploymentItem("Configuration", "Configuration")] 
class TestClass 
.... 

et il travaillerait.

0

Dans Visual Studio 2012, le répertoire de sortie est le répertoire de travail, ce qui signifie que l'attribut DeploymentItem n'est pas nécessaire pour le cas général (où vous n'avez pas d'éléments de déploiement spécifiques par test ou par classe). Vous pouvez simplement cliquer sur Projet | Afficher tous les fichiers et inclure le sous-dossier et les fichiers dans Visual Studio avec l'attribut 'Copier toujours' ou 'Copier si plus récent' de votre projet et les fichiers seront copiés dans votre répertoire de sortie avec la hiérarchie intacte. La même chose s'applique lors de l'exécution de vstest.console.exe à partir de la ligne de commande.

Voir here pour plus d'informations sur les éléments de déploiement dans Visual Studio 2012.

Questions connexes