Cercando di utilizzare Moles con NUnit. Ottenere “Moles richiede test per essere un processo strumentato”

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

  •  26-09-2019
  •  | 
  •  

Domanda

Sto cercando di usare le talpe con NUnit e sto ottenendo il seguente errore "Moles richiede test per essere un processo strumentato". Inoltre sto usando Visual NUnit all'interno di Visual Studio 2008 per ottenere questo lavoro. Qualsiasi aiuto è benvenuto.

È stato utile?

Soluzione

Questo è quello che ho fatto in modo da rendere il lavoro Moles con NUnit:

  1. Afferra l'archivio a C:\Program Files (x86)\Microsoft Moles\Documentation\moles.samples.zip ed estrarre la cartella della soluzione Moles.

  2. Il progetto NUnit in Visual Studio (2008) per il rilascio.

  3. Copiare il file di output Microsoft.Moles.NUnit.dll e Microsoft.Moles.NUnit.xml da ...\Moles\NUnit\bin\Release\ a C:\Program Files (x86)\NUnit 2.5.9\bin\net-2.0\addins\. Ho il sospetto che questo passo di ri-compilazione del NUnit Addin invece di utilizzare quello proveniente dal download e l'installazione è stato il punto solving effettivo.

  4. Nel progetto di prova VS, assicuratevi di aggiungere un riferimento alla C:\Program Files (x86)\NUnit 2.5.9\bin\net-2.0\addins\Microsoft.Moles.NUnit.dll appena copiato.

  5. Nella classe di test VS, segnano un metodo di test con l'attributo [Moled] (questo richiederà un using Microsoft.Moles.Framework.NUnit). In alternativa, avvolgere la sua implementazione all'interno di un blocco using (MolesContext.Create()) { ... } (questo richiederà un using Microsoft.Moles.Framework).

  6. Dalla riga di comando, richiamare NUnit prova corridore attraverso le talpe corridore con il seguente: "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"

ho scoperto che l'attributo non lavoro con [TestCase (...)] [Moled] e ti riporta al scenario di errore uninstrumented. Invece il blocco using (MolesContext.Create()) lavora in quel caso.

Una volta trovato che tutto funziona, si potrebbe prendere in considerazione l'esecuzione talpe corridore come uno strumento esterno all'interno di Visual Studio. Segue le istruzioni in corso Moles utilizzando NUnit console da Visual Studio , aggiornare gli argomenti del passaggio 6.

Si prega di notare che questo era su una macchina a 64 bit di Windows 7, con NUnit 2.5.9, Microsoft Pex e Moles (x86) 0.94.51006.1. Considerate le cartelle effettive per percorsi diversi, versioni, ecc.

Altri suggerimenti

Sto usando la versione Moles 0.94.51023.0.

Per quanto io sappia, è necessario aggiungere l'attributo di seguito al metodo di prova. Sto utilizzando il framework di test di Visual Studio, non so se è la stessa con NUnit, et. al.

[HostType("Moles")]

Ho anche letto che è possibile aggiungere l'attributo [Moled] il metodo di prova, ma che non era disponibile a me, e io non andare in perché, ammesso che sia vecchia documentazione - che sembra che ci sia un sacco di con Moles.

Aggiorna : secondo il Moles Manuale di riferimento, pag. 26, il MoledAttribute sul metodo di prova è la strada da percorrere con NUnit. È necessario registrare il Microsoft.Moles.NUnit.dll montaggio con NUnit copiandolo al NUnit bin / componenti aggiuntivi cartella.

Poi si dovrebbe aggiungere l'attributo [Moled] al metodo di prova.

[Test]
[Moled]
public void MyTest() {
  ...
}

In caso contrario, si potrebbe aggiungere un blocco utilizzando per avvolgere il metodo di prova, come di seguito:

[Test]
public void MyTest() {
  using (MolesContext()) {
  ...
  }
}

Oltre ad aggiungere il [HOSTTYPE ( "talpe")] attributo, è necessario avvolgere il test runner con il talpe corridore. Ad esempio:

moles.runner.exe MyAssembly.dll /r:nunit-console.exe

Il corridore talpe è probabilmente situato a C: \ Program Files \ Microsoft Moles \ bin . Per l'utilizzo, eseguire:

moles.runner.exe help

superjos ha la risposta più corretta e l'utilizzo del "Continuous Testing" Addin è possibile ottenere Visual Studio per eseguire il corridore Moles attraverso la console corridore NUnit con questo file 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

solo aggiornare i percorsi per la versione dei pacchetti software. Questo può anche essere utilizzato per eseguire da altri programmi, se si ha il tempo di aggiornarlo.

Non è possibile eseguire MS Moles con NUnit all'interno di Visual Studio. È necessario usare sia MSTest (Visual Studio Test Unit) per farlo oppure è possibile eseguire i test NUnit con Moles dal comando line.See manuale di riferimento .

Una possibile alternativa: se si adatta alle vostre esigenze, è possibile utilizzare il href="http://www.gallio.org" rel="nofollow"> Gallio piattaforma di automazione

HTH! Thomas

scroll top