J'ai une solution Visual Studio 2010 avec plusieurs projets Mstest. L'un des projets de test nécessite un fichier dans un répertoire spécifique pour exécuter.
[TestClass] [DeploymentItem("ReportEngine.config")] [DeploymentItem("Report Files", "Report Files")] public class MyReportTests { }
4 Réponses :
Je vous ai initialement donné des instructions pour vous assurer que le déploiement a été activé dans vos paramètres de test. Vous avez dit que c'était.
Assurez-vous que vous avez un déploiement activé pour le test de test. P>
- Modifier votre
.TestStsettings code> dans le dossier d'éléments de la solution li>
- Sélectionnez la catégorie de déploiement LI>
- Vérifiez l'option "Activer le déploiement" LI>
- Cliquez sur "Appliquer" et "Fermer" LI> ol> BlockQuote>
Cependant, depuis la dernière fois que j'ai répondu, j'ai appris que le
déploymentItem code>
attribue uniquement des méthodes cibles (et, puis, il semble que fonctionne uniquement surtestmethod code> S ). Cela n'aurait jamais pu faire la façon dont vous avez la possibilité de décorer une classe
code>. J'ai également remarqué votre commentaire sur votre question (édité pour la grammaire) p>
Oui, les éléments sont définis sur
COPY TOUJOURS CODE>, sinon le
Déploymyplyntem code> dans l'exécution du test de projet ne fonctionnerait pas. P> blockQuote>
Il y a beaucoup de Discussion si cela est nécessaire ou non pour faire
DeploymentItem code> Travail. Je soupçonne que quelque chose que nous n'avons pas encore identifié est de faire passer des tests lors de leur exécution du projet. Veuillez supprimer le
déploymentItem code> S complètement em> et essayez vos deux essais (à partir du projet et de la solution) et voyez quels résultats vous obtenez. P>
Dans le cas où les articles de déploiement fonctionnent malgré la documentation h3>
assurez-vous que
reporterengine.config code> et
reporterfiles \ code> sont où vous et Mstest attendez-vous à ce qu'ils soient. Les chemins de fichiers relatifs sont résolus à partir du "relativentPath". Par défaut, c'est le
$ (solutiondir) code>. Sauf si vous le remplacez dans les testsettings
code>. S'il vous plaît vérifier sur cela. P>
mais, par défaut p>
xxx pré> est étendu à quelque chose comme p>
xxx pré> Ensuite, par exemple, à p>
xxx pré> p>
Malheureusement, c'est pas b> la solution à mon problème. I Alrady avait ces paramètres. Sinon, le test ne réussirait pas au projetCOPE. J'ai plusieurs projets de test lorsque je les exécute tous ensemble (sur la portée de la solution), certains échouent parce que [DeploymentItem] est ignoré. Lorsque j'exécute un projet de test, les tests réussissent, le déploiement fonctionne car les paramètres de la réponse ont été effectués.
Oh, désolé pour ça ... le truc de prime est un peu maladroit dans cette situation :(
+1, je devais créer un fichier testsettings et l'ajouter à mon dossier de test de mon unité dans ma solution - puis sélectionnez ce fichier de testSettings dans Visual Studio. Il n'était pas apparu d'une autre documentation que j'ai vu que je devrais créer un pour activer déploymentItem code> s.
Les éléments de déploiement sont notoirement flocons ... Avez-vous envisagé d'utiliser MSBuild et d'éditer le fichier Je ne sais pas si Msbuild contient une variable pour le répertoire de test actuel ... car il ne semble pas être impliqué dans le processus. P> P> .CSPROJ CODE> directement?
semble être un problème de correction Microsoft Won-T. P>
Avez-vous un lien vers la question de KB ou Connect qui le spécifie?
J'ai posé la question en mai 2011 et après 16 mois et une prime, j'étais frustré qu'il n'y avait pas de solution. J'ai donc fait ma propre réponse acceptée.
Peut-être qu'un cas de test se déplace / supprime le fichier? Selon L'article MSDN "Comment: déployer des fichiers pour tests" Les fichiers sont déployés une seule fois: p>
Lorsque vous sélectionnez un ensemble de tests à exécuter, tous les éléments spécifiés dans leurs attributs de déploiementItem sont copiés avant la mise hors tension du test. P> blockQuote>
Si vous cliquez avec le bouton droit de la souris sur ces éléments de votre solution, sont-ils définis sur copier? Je me demande si vous avez besoin de les mettre pour copier toujours ... Juste une supposition.
Oui, les éléments sont définis sur "Copier toujours". Sinon, le [DeploymentItem] dans ProjectScope ne fonctionnera pas aussi
"Les fichiers de rapport" sont relatifs à la racine de la solution, correct? Est-ce le cas dans votre projet?