Essayer d'utiliser des taupes avec NUnit. Obtenir « taupes nécessite des tests pour être un processus instrumentée »

StackOverflow https://stackoverflow.com/questions/3815946

  •  26-09-2019
  •  | 
  •  

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.

Était-ce utile?

La solution

est ce que je l'ai fait pour rendre le travail taupes avec NUnit:

  1. Saisir l'archive à C:\Program Files (x86)\Microsoft Moles\Documentation\moles.samples.zip et extraire le dossier de la solution Moles.

  2. Générez le projet NUnit dans Visual Studio (2008) pour la version.

  3. Copiez les fichiers de sortie Microsoft.Moles.NUnit.dll et Microsoft.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.

  4. 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.

  5. Dans votre classe de test VS, marquer une méthode d'essai avec l'attribut [Moled] (cela nécessitera un using Microsoft.Moles.Framework.NUnit). Comme alternative, enveloppez sa mise en œuvre dans un bloc de using (MolesContext.Create()) { ... } (cela nécessitera un using Microsoft.Moles.Framework).

  6. À 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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top