2009-01-29 6 views
0

J'ai quelques fichiers que je veux utiliser dans mes tests unitaires mais je veux faire ces fichiers par rapport à l'emplacement de la DLL qui contient les tests unitaires, est-ce possible? En d'autres termes, j'ai inclus un dossier Ressources qui contient des fichiers pour mes tests unitaires à utiliser dans les tests, j'ai marqué les fichiers "Build Action" = "Content" et "Copy to Output Direct" = "Copy Always" mais ça ne fait pas ce que je pensais que ça ferait. J'ai pensé qu'il copierait le contenu, mais quand mes tests sont exécutés, ils disent que les fichiers n'existent pas.Inclure des données dans mes tests unitaires

Je préférerais ne pas résoudre cela en mettant des chemins explicites, car ces chemins varieraient alors d'une machine de développement à une machine de développement.

J'ai également essayé d'ajouter ce qui suit en tant qu'événement de pré-construction et également en tant qu'événement de post-construction, mais cela n'a pas non plus résolu mon problème.

xcopy "$(ProjectDir)Resources\*.*" "$(OutDir)Resources\*.*" /i /d /s /y

Si je fais la précédente un pré ou d'un événement après la construction, je vois que les données sont copiées à mon outdir, mais il ne fait pas dans le dossier de TestResults qui est où le dossier des ressources doit également être copié pour les tests d'avoir des données à des tests.

Répondre

2

Le coureur unittest doit copier vos assemblages unittest dans un dossier temporaire. Au lieu de copier ces fichiers de ressources, envisagez de les inclure en tant que ressources incorporées, puis de les charger à partir de l'assembly à l'aide de Assembly.GetManifestResourceStream().

+0

Merci! Cette solution n'était pas exactement ce que je pensais faire, mais ça fonctionne. – Dave