Der Versuch, Moles mit NUnit zu verwenden. Erster „Moles Test erfordert ein instrumentierte Prozess zu sein“

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

  •  26-09-2019
  •  | 
  •  

Frage

Ich versuche Mole mit NUnit zu verwenden und ich erhalte die folgenden Fehler „Moles erfordert Tests ein instrumentierten Prozess zu sein“. Ich verwende auch in Visual NUnit in Visual Studio 2008 diese Funktion zu erhalten. Jede Hilfe ist willkommen.

War es hilfreich?

Lösung

Dies ist, was ich tat, um Moles Arbeit mit NUnit zu machen:

  1. Schnappen Sie sich das Archiv in C:\Program Files (x86)\Microsoft Moles\Documentation\moles.samples.zip und die Moles Lösung Ordner extrahieren.

  2. Erstellen Sie das NUnit Projekt in Visual Studio (2008) für Release.

  3. Kopieren Sie die Ausgabedateien Microsoft.Moles.NUnit.dll und Microsoft.Moles.NUnit.xml von ...\Moles\NUnit\bin\Release\ zu C:\Program Files (x86)\NUnit 2.5.9\bin\net-2.0\addins\. Ich vermute, dass dieser Schritt der erneuten Kompilieren der NUnit Addin statt dem bereits die Verwendung aus dem Download kommen und installieren wurde die eigentliche Lösung Punkt.

  4. In Ihrem VS Testprojekt, stellen Sie sicher, einen Verweis auf die C:\Program Files (x86)\NUnit 2.5.9\bin\net-2.0\addins\Microsoft.Moles.NUnit.dll fügen Sie einfach kopiert.

  5. In Ihrer VS Testklasse, ein Testverfahren mit dem [Moled] Attribute markiert (dies wird ein using Microsoft.Moles.Framework.NUnit benötigen). Als Alternative wickeln ihre Umsetzung innerhalb eines using (MolesContext.Create()) { ... } Block (dies wird eine using Microsoft.Moles.Framework benötigen).

  6. Von der Befehlszeile invoke NUnit Test Runner durch die Mole Läufer mit dem folgenden: "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"

Ich fand, dass [Moled] Attribut nicht Arbeit mit [Testcase (...)] und es bringt Sie zurück in die uninstrumentierten Fehlerszenario. Statt der using (MolesContext.Create()) Block funktioniert auch in diesem Fall.

Wenn Sie, dass alles funktioniert finden, könnten Sie die Mole Läufer als externes Tool in Visual Studio ausgeführt wird. Folgt Anweisungen in Laufe Moles mit NUnit-Konsole von Visual Studio , Aktualisierung der Argumente wie in Schritt 6.

Bitte beachten Sie, dass diese auf einem Windows 7 64-Bit-Maschine war, mit NUnit 2.5.9, Microsoft Pex und Moles (x86) 0.94.51006.1. Betrachten Sie Ihre tatsächliche Ordner für verschiedene Pfade, Versionen, etc.

Andere Tipps

Ich bin mit Moles Version 0.94.51023.0.

Soweit ich weiß, müssen Sie die folgende Attribut zu Ihrer Testmethode hinzuzufügen. Ich bin mit dem Visual Studio Test-Framework, nicht sicher, ob es das gleiche mit NUnit ist, et. al.

[HostType("Moles")]

Ich habe auch gelesen, dass Sie das [Moled] Attribut die Testmethode hinzufügen können, aber das war mir nicht zur Verfügung, und ich ging nicht in warum, es ist alte Dokumentation vorausgesetzt - was gibt es eine Menge zu sein scheint mit Moles.

Aktualisieren : Richtet sich nach der Moles-Referenzhandbuch, Seite. 26, die MoledAttribute auf dem Testverfahren ist der Weg mit NUnit zu gehen. Sie müssen sich die Microsoft.Moles.NUnit.dll Montage mit NUnit indem sie sie an die NUnit bin / addins Ordner kopiert werden.

Dann würden Sie das [Moled] Attribut des Testverfahren hinzuzufügen.

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

Ansonsten würden Sie einen mit Block fügen Sie die Testmethode zu umhüllen wie folgt:

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

Neben dem [Unterkuntstyp ( „Moles“)], um das Hinzufügen Attribut, müssen Sie die Testläufer mit der Mole Läufer wickeln. Zum Beispiel:

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

Die Moles Läufer ist wahrscheinlich unter C: \ Programme \ Microsoft Moles \ bin . Für die Nutzung führen:

moles.runner.exe help

superjos hat die meisten richtige Antwort und mit Hilfe der „Continuous Testing“ Addin Visual Studio erhalten die Moles Läufer durch die NUnit Konsole Läufer mit dieser Batch-Datei ausgeführt werden:

@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

Aktualisieren Sie einfach die Pfade zu Ihrer Version der Softwarepakete. Dies kann auch verwendet werden, um es von anderen Programmen ausgeführt werden, wenn Sie die Zeit haben, sie zu aktualisieren.

Sie können nicht MS Moles mit NUnit in Visual Studio ausgeführt. Sie müssen entweder MSTest (Visual Studio Unit Tests) verwenden, das zu tun, oder Sie können Ihre NUnit Tests mit Moles aus dem Befehl line.See die Referenzhandbuch .

Eine mögliche Alternative: Wenn es Ihren Bedürfnissen entspricht, können Sie verwenden, um die Gallio Automatisierungsplattform alle Arten von laufen Test-Frameworks (in Ihrem Fall NUnit und MSTest) nebeneinander ...

HTH! Thomas

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top