2011-01-27 2 views
8

J'ai un projet de test dans une solution Visual Studio 2010 qui teste un autre projet qui est un utilitaire FTP. Le projet de test a besoin de fichiers FTP ici et là, donc j'utilise un fichier de test pour passer aux méthodes utilitaires et vérifier qu'il est téléchargé/archivé/etc. Dans mon projet de test, j'ai un dossier sous la racine appelé TestFiles, avec un seul fichier .txt dedans. Je veux l'avoir où chaque fois que quelqu'un vérifie la solution du contrôle de la source et exécute les tests unitaires, que le fichier dans ce dossier est saisi et utilisé dans les tests unitaires FTP.Meilleure pratique pour utiliser les fichiers/répertoires de test dans les projets de test Visual Studio 2010 C#

J'ai essayé d'utiliser cela, et les variations de la ligne de commande d'événement après génération, mais sans succès:

copy $(ProjectDir)TestFiles\Test.txt $(ProjectDir)Debug\bin\Test.txt 

Tout ce que je veux vraiment faire est de vous assurer que je peux utiliser un chemin relatif pour tous les fichiers de test locaux, de sorte que je suis sûr de ne pas avoir de problèmes, peu importe où un membre de mon équipe vérifie le projet (ou si Team Foundation Server exécute une compilation automatisée et déclenche les tests unitaires pour mon projet).

J'essaie actuellement d'accéder au fichier dans mes tests unitaires comme celui-ci, de sorte que je prends juste de la zone de mise au point:

ftp.uploadThisFileSomewhere(
AppDomain.CurrentDomain.BaseDirectory + "\\TestFiles\\Test.txt"); 

Ainsi, est-ce la bonne façon de saisir un test fichier? Je ne le pense pas, mais je n'arrive pas à trouver un bon document sur les bonnes pratiques. Si c'est assez bon, comment pouvez-vous copier/garantir un emplacement relatif, peu importe où le projet est construit/exécuté?

Répondre

7

La pratique recommandée consiste à utiliser l'attribut DeploymentItem pour chaque élément devant être autocopié pendant le processus MSTest.

Il y a un certain nombre d'étapes à suivre, de la définition des éléments, à s'assurer que chaque fichier a les bonnes propriétés, bla bla bla. Donc, j'ai écrit une belle allusion d'instructions sur la façon de le faire.

Have a read of a detailed description about how to do this.

+0

les fichiers doivent-ils être stockés dans un seul dossier pour une meilleure gestion? – noocyte

+0

C'est totalement à vous, mate :: préférence personnelle. –

1

Incluez le fichier dans votre projet et définissez ses propriétés sur Content and Copy If Newer. Il sera copié dans le répertoire build/run lors du débogage et de la publication.

0

Salut J'ai le même problème et j'ai utilisé des ressources. J'ai créé TestFiles.resx dans mon projet de test, puis j'ai ajouté des fichiers. Et dans les unités de test que j'ai utilisé par exemple TestFiles.SomeFile et moi avons été en mesure d'oublier les chemins etc

+0

@Mercinn - s'il vous plaît se référer au lien dans ma réponse, ci-dessus :) –

+0

Est-ce que ça marche avec Nunit? – marcinn

+0

Non. mon message ci-dessus est seulement sur MSTest. NUnit aurait une implémentation similaire mais pas exactement la même chose que mon post .. car il a des trucs spécifiques à MSTest. –

Questions connexes