Visual Studio 2010, x64-linge, utilisant le serveur web intégré à l'hôte d'un service WCF avec un ensemble de tests unitaires à l'aide de l'intégré dans le framework de test.
J'ai un fichier XML que mes tests ont besoin de charger à exécuter. J'ai inclus ce fichier dans le projet de test, et le fichier est mis à "contenu" et "toujours copier vers le répertoire de sortie'. Ce fichier se copie le répertoire bin\debug amende.
Lorsque j'exécute les tests, toutefois, le fichier xml n'est pas là. Au lieu de regarder dans le projet du dossier bin\debug, il le cherche dans le test du répertoire de travail, C:\Projects\SAP Reapprovals\TestResults\name_machine 2010-12-06 13_45_43\Out". Le fichier n'a pas été copiés.
Est-il un moyen de forcer ce fichier à copier, ou dois-je obtenir la référence dans le test?
TIA!
James
Mise à jour
J'ai mis l' DeploymentItem
d'attribut, mais le fichier n'est pas toujours exemplaire. Mais ce qui ressemble à ce que je veux... toutes les idées de pourquoi ça ne fonctionne pas?
Mon code de test:
[TestMethod]
[DeploymentItem("SAP - GS3 format.xml")]
public void TestProcessSapRoles() {
// I get a 'file not found' error here, and when
// I check the output directory, it isn't there
XElement rolesRoot = XElement.Load("SAP - GS3 format.xml");
}
RÉPONSES:
Merci à CPedros, avec son aide, j'ai zoomé sur un peu tout ça. J'ai couru SysInternals' Moniteur de Processus, pour voir où il était à la recherche de mon fichier xml. Voici ce que j'ai trouvé:
Quand j'ai couru les tests à l'aide de ctrl+r ctrl+t (déboguer les tests dans le contexte actuel), visual studio ignoré l' DeploymentItem
attribut complètement et n'a même pas essayer de copier le fichier n'importe où. Dans ce cas, j'ai eu un "Fichier Non Trouvé" l'exception " quand j'ai essayé de l'ouvrir à la lecture. Visual studio a créé un dossier temporaire de travail pour les tests, mais il y avait un seul fichier, AgentRestart.dat.
Quand j'ai couru les tests à l'aide de la 'Exécuter des Tests Unitaires" dans ma barre d'outils (pas sûr de ce test option), Visual Studio n'a pas copier un fichier de plus de, mais de le référencer directement à partir du répertoire du projet. Le test passé, et aucun dossier temporaire de travail a été créé.
Quand j'ai couru le test à partir de l'option de menu "exécuter -> tests dans le contexte actuel" (exécuter, pas de débogage), un dossier temporaire de travail a été créé, et le fichier xml et de tous les exécutables ont été copiés. Le test réussi.
Lorsque j'ai édité Local.testsettings (en vertu d'une Solution d'Éléments de dossier dans mon dossier de tests), j'ai choisi 'Déploiement' dans le menu de gauche, et ajouté le fichier xml. Il a ajouté que [solution répertoire]\[répertoire du projet]\file.xml. J'ai enlevé l' DeploymentItem
d'attribut. Maintenant, j'ai été en mesure de débogage, les tests; le fichier xml et de tous les exécutables ont été copiés dans le répertoire temporaire créé pour le test.
TLDR: Visual Studio, c'est ignorer l' DeploymentItem
de l'attribut de certaines façons de l'exécution du test. La solution est d'éditer Local.testsettings
, l' Deployment
menu et ajouter le fichier à la main.
Merci pour l'aide! Je suis en train de donner CPedros de crédit pour sa réponse, comme il a été le plus utile dans la résolution de ce.