2008-12-06 8 views
0

je l'habitude d'avoir un dossier de tests dans mon projet principal où un test unitaire avait cette ligne de code:Briser les tests unitaires dans un autre projet

Foo foo = new Foo(Environment.CurrentDirectory + @"\XML\FooData.xml"); 

J'ai un répertoire XML dans le projet Foo qui a un FooData.xml

en cas de construction après de mes projets j'ai la ligne suivante copie "$ (ProjectDir) Foo \ Currencies.xml" "$ (TargetDir) \ XML"

J'ai maintenant battu tous tests unitaires dans un autre projet pour les séparer et je reçois maintenant ce qui suit erreur lors de l'exécution de ces tests unitaires.

Impossible de trouver une partie du chemin 'C: \ SVNCheckout \ Foo.Tests \ bin \ Debug \ XML \ FooData.xml'

+0

Tout comme un peu de côté, utilisez System.IO.Path.Combine() au lieu de concaténation de chaînes pour les chemins si possible .. –

Répondre

4

plutôt que d'avoir une étape de post-construction, pouvez-vous pas juste en faire un élément "content" dans Visual Studio, lui disant de le copier dans le répertoire cible? Habituellement, soit je fais cela, soit j'en fais une ressource intégrée et j'utilise les flux et Assembly.GetManifestResourceStream.

+0

Sélectionnez Copier-Toujours pour le copier dans le répertoire bin. Cela résout le problème – Tigraine

+0

ok. .thats bien, mais j'ai encore besoin d'y accéder à partir de l'autre projet – leora

+0

Le fichier spécifique à vos tests unitaires? (c'est-à-dire qu'il est seulement utilisé pour des données simulées ou similaires, dans le cadre des tests unitaires) Si c'est le cas, il devrait aller avec votre projet de test unitaire au lieu du projet principal. – GalacticCowboy

1

Je crois que vous devez mettre à jour l'événement post construction pour le projet Foo.Tests être:

"$ (ProjectDir) Foo.Test \ Currencies.xml" "$ (TargetDir) \ XML"

+0

dites-vous mettre le fichier XML dans ce projet aussi bien? – leora

+0

Je supposais que vous l'aviez déjà déplacé dans ce projet, résultant de l'opération de copie ne copiant rien. –

0

Vous pouvez aussi mettre le chemin complet du fichier XML dans vos modules de test App.Config