Essayer d'utiliser des taupes avec NUnit. Obtenir « taupes nécessite des tests pour être un processus instrumentée »
Question
Je suis en train d'utiliser les taupes avec NUnit et me fais l'erreur suivante « Moles nécessite des tests comme un processus instrumentée ». Je suis également en utilisant NUnit visuel dans Visual Studio 2008 pour obtenir ce travail. Toute aide est la bienvenue.
La solution
est ce que je l'ai fait pour rendre le travail taupes avec NUnit:
-
Saisir l'archive à
C:\Program Files (x86)\Microsoft Moles\Documentation\moles.samples.zip
et extraire le dossier de la solutionMoles
. -
Générez le projet
NUnit
dans Visual Studio (2008) pour la version. -
Copiez les fichiers de sortie
Microsoft.Moles.NUnit.dll
etMicrosoft.Moles.NUnit.xml
de...\Moles\NUnit\bin\Release\
àC:\Program Files (x86)\NUnit 2.5.9\bin\net-2.0\addins\
. Je pense que cette étape de re-compilation du NUnit Addin au lieu d'utiliser celui qui vient du téléchargement et l'installation a été le point de la résolution réelle. -
Dans votre projet de test VS, assurez-vous d'ajouter une référence à la
C:\Program Files (x86)\NUnit 2.5.9\bin\net-2.0\addins\Microsoft.Moles.NUnit.dll
que vous venez de copier. -
Dans votre classe de test VS, marquer une méthode d'essai avec l'attribut
[Moled]
(cela nécessitera unusing Microsoft.Moles.Framework.NUnit
). Comme alternative, enveloppez sa mise en œuvre dans un bloc deusing (MolesContext.Create()) { ... }
(cela nécessitera unusing Microsoft.Moles.Framework
). -
À partir de la ligne de commande, invocation lanceur de test NUnit par le nombre de moles coureur avec le texte suivant:
"C:\Program Files (x86)\Microsoft Moles\bin\moles.runner.exe" "path\to\your\test\assembly.dll" /r:"C:\Program Files (x86)\NUnit 2.5.9\bin\net-2.0\nunit-console.exe" /x86 /args:"/domain=None"
Je trouve que [Moled] attribut ne pas avec le travail et il vous apporte [TestCase (...)] retour au scénario d'erreur instrumenté. Au lieu de cela le bloc using (MolesContext.Create())
fonctionne dans ce cas aussi.
Une fois que vous trouvez que tout fonctionne, vous pourriez envisager de faire tourner coureur de taupes comme un outil externe dans Visual Studio. Instructions en cours taupes à l'aide de la console de NUnit Visual Studio, mettre à jour les arguments comme à l'étape 6.
S'il vous plaît noter que c'était sur une machine 64 bits de Windows 7, avec NUnit 2.5.9, Microsoft Pex et les taupes (x86) 0.94.51006.1. Pensez à vos dossiers réels pour les chemins différents, versions, etc.
Autres conseils
J'utilise la version taupes 0.94.51023.0.
Pour autant que je sache, vous devez ajouter l'attribut ci-dessous à votre méthode d'essai. J'utilise le framework de test Visual Studio, pas sûr que ce soit la même chose avec NUnit, et. al.
[HostType("Moles")]
J'ai aussi lu que vous pouvez ajouter l'attribut [Moled]
à la méthode d'essai, mais ce n'était pas disponible pour moi, et je ne suis pas dans la raison pour laquelle, en supposant qu'il est vieux documents - qui il semble y avoir beaucoup de avec des taupes.
Mise à jour : après le manuel de référence Moles, p. 26, la MoledAttribute sur la méthode d'essai est la voie à suivre avec NUnit. Vous devez vous inscrire Microsoft.Moles.NUnit.dll assemblage avec NUnit en copiant à la NUnit bin / addins dossier.
Ensuite, vous ajoutez l'attribut [Moled]
à la méthode d'essai.
[Test]
[Moled]
public void MyTest() {
...
}
Dans le cas contraire, vous devez ajouter un bloc à l'aide d'envelopper la méthode d'essai comme ci-dessous:
[Test]
public void MyTest() {
using (MolesContext()) {
...
}
}
En plus d'ajouter l'attribut [HostType ( « taupes »)], vous devez envelopper le coureur de test avec le coureur de taupes. Par exemple:
moles.runner.exe MyAssembly.dll /r:nunit-console.exe
Le coureur Moles est probablement situé dans C: \ Program Files \ Microsoft Moles \ bin . Pour l'utilisation, exécutez:
moles.runner.exe help
superjos a la plus bonne réponse et en utilisant le « contrôle continu » vous pouvez obtenir Addin Visual Studio pour exécuter le coureur Moles par le coureur de la console NUnit avec ce fichier batch:
@echo off
rem Uses the Microsoft Moles runner and fires off the NUnit console runner so you can use Moles with NUnit.
rem This batch file is intended to be run from the Continuous Testing plugin in Visual Studio.
rem However, it can be used to run nunit tests from anyhere with Moles as long as the first parameter
rem is the assembly to be tested. All other parameters are passed to NUnit.
set ASSEMBLY=%1
set MOLESPATH="c:\Program Files\Microsoft Moles\bin\moles.runner.exe"
set NUNITPATH="C:\Program Files\NUnit 2.5.10\bin\net-2.0\nunit-console.exe"
shift
if [%ASSEMBLY%]==[] goto HelpScreen
if [%1]==[] goto RunAlone
if [%2]==[] goto RunParams1
if [%3]==[] goto RunParams2
if [%4]==[] goto RunParams3
if [%5]==[] goto RunParams4
if [%6]==[] goto RunParams5
if [%7]==[] goto RunParams6
if [%8]==[] goto RunParams7
if [%9]==[] goto RunParams8
goto RunParams9
:HelpScreen
echo "The parameters are the same as NUnit Console runner with the exception that:
echo " 1) Only one assembly is supported and it must come first"
echo " 2) Only 9 extra parameters may be specified"
echo
%NUNITPATH% /?
exit 1
:RunAlone
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY%
goto ExitRunner
:RunParams1
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY% /args:%1
goto ExitRunner
:RunParams2
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY% /args:%1 /args:%2
goto ExitRunner
:RunParams3
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY% /args:%1 /args:%2 /args:%3
goto ExitRunner
:RunParams4
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY% /args:%1 /args:%2 /args:%3 /args:%4
goto ExitRunner
:RunParams5
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY% /args:%1 /args:%2 /args:%3 /args:%4 /args:%5
goto ExitRunner
:RunParams6
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY% /args:%1 /args:%2 /args:%3 /args:%4 /args:%5 /args:%6
goto ExitRunner
:RunParams7
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY% /args:%1 /args:%2 /args:%3 /args:%4 /args:%5 /args:%6 /args:%7
goto ExitRunner
:RunParams8
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY% /args:%1 /args:%2 /args:%3 /args:%4 /args:%5 /args:%6 /args:%7 /args:%8
goto ExitRunner
:RunParams9
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY% /args:%1 /args:%2 /args:%3 /args:%4 /args:%5 /args:%6 /args:%7 /args:%8 /args:%9
goto ExitRunner
:ExitRunner
Il suffit de mettre à jour les chemins à votre version des logiciels. Cela peut également être utilisé pour exécuter d'autres programmes si vous avez le temps de le mettre à jour.
Vous ne pouvez pas exécuter MS Moles avec NUnit à partir de Visual Studio. Vous devez utiliser soit MSTest (Tests unitaires Visual Studio) pour le faire ou vous pouvez exécuter vos tests NUnit avec des taupes de la commande line.See référence manuel.
Une alternative possible: si elle répond à vos besoins, vous pouvez utiliser la plate-forme d'automatisation Gallio pour exécuter toutes sortes de cadres de test côté (dans votre cas NUnit et MSTest) côte à côte ...
HTH! Thomas