C # DeploymentItem ne parvient pas à copier le fichier pour le test unitaire MSTest
Je vais avoir du mal à obtenir un fichier XSL pour être copié dans le même répertoire que le montage d'essai lorsque j'utilise le DeploymentItem
attribut sur un MSTest de test de l'unité. J'ai suivi la réponse choisie pour cette question et le fichier que j'ai besoin de copié de sa "Copie vers le Répertoire de Sortie" réglé sur "Copy". Quand je vérifie mon ProjectDir\bin dans le répertoire (le répertoire Cible), le fichier copié est en effet là, à côté de la Dll et Pdb.
J'ai un couple de tests unitaires avec la configuration suivante:
private const string DLL = "Service.dll";
private const string XSL_PATH = "transform.xsl";
[TestInitialize]
public void InitializeTest()
{
Assert.IsTrue(File.Exists(DLL)); //passes
}
[TestMethod]
[DeploymentItem(DLL)]
[DeploymentItem(XSL_PATH)]
public void XmlToResultsTest()
{
Assert.IsTrue(File.Exists(XSL_PATH)); //fails
}
Le XSL test échoue parce que quand je vérifie MSTest de TestResults\particularTestRun\répertoire Out, je vois la Dll et le Pdb, mais mon fichier XSL n'est pas là. Ce que je veux savoir, c'est pourquoi le fichier XSL ne pas être copiés à côté de la Dll et Pdb, même quand j'ai explicitement indiquer à Visual Studio pour le copier via DeploymentItem
?
source d'informationauteur Sarah Vessels
Vous devez vous connecter pour publier un commentaire.
Grâce à Marc Gravel réponse liée à la question de la mienne, j'ai essayé de mettre à jour mon MSTest .testrunconfig fichier, de sorte que mon fichier XSL est inclus dans le "Déploiement" de la section. Cela permet à mes tests unitaires passent, mais je suis encore perturbé que j'ai eu à faire cela-ne devrait pas la combinaison de
DeploymentItem
et marquage les propriétés du fichier dans mon projet de copier dans le répertoire de sortie suffisante?Aurait VS2008 éléments de déploiement en silence l'échec, à moins que le répertoire de sortie est une chaîne littérale. Hmmm ^_^
J'ai eu le même problème, même si je était à l'aide d'une chaîne littérale dans le déploiement de l'élément. J'ai même essayé d'ajouter le fichier à la "Déploiement" de la section paramètres de test qui ne fonctionne pas non plus. Il s'est avéré que le problème était lié à la plateforme de test.
J'ai un ordinateur 64 bits et le projet que j'ai été le tester et de l'unité de projet de test de la plate-forme cible " Any CPU.
J'ai trouvé que le déploiement de l'élément a été seulement copié si je choisis "Exécuter les tests dans une version 64 bits de processus sur l'ordinateur 64 bits".
Nous avons eu une situation similaire au travail, où le DeploymentItem attribut ne fonctionne pas comme prévu. Nous avons également été à l'aide de 64 bits machines, et le projet de plate-forme fixée à "any CPU". Comme solution, nous avons inclus le fichier requis par l'unité de test comme un lien à partir de l'unité de test du projet et de définir sa "Copie vers le Répertoire de Sortie" pour "Copy".