Tratar de utilizar Moles con NUnit. Conseguir “Moles requiere pruebas de que sea un proceso instrumentado”

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

  •  26-09-2019
  •  | 
  •  

Pregunta

Estoy intentando utilizar topos con NUnit y estoy recibiendo el siguiente error "Moles requiere pruebas de que sea un proceso instrumentado". También estoy usando Visual NUnit dentro de Visual Studio 2008 para conseguir este trabajo. Cualquier ayuda es bienvenida.

¿Fue útil?

Solución

Esto es lo que hice con el fin de hacer que el trabajo Moles con NUnit:

  1. Grab el archivo en C:\Program Files (x86)\Microsoft Moles\Documentation\moles.samples.zip y extraer la carpeta de soluciones Moles.

  2. Construir el proyecto NUnit en Visual Studio (2008) para el lanzamiento.

  3. Copiar los archivos de salida Microsoft.Moles.NUnit.dll y Microsoft.Moles.NUnit.xml de ...\Moles\NUnit\bin\Release\ a C:\Program Files (x86)\NUnit 2.5.9\bin\net-2.0\addins\. Sospecho que este paso de volver a compilar el NUnit Addin en lugar de utilizar la que proviene de la descarga y la instalación fue el punto de la resolución real.

  4. En el proyecto de prueba VS, asegúrese de añadir una referencia a la C:\Program Files (x86)\NUnit 2.5.9\bin\net-2.0\addins\Microsoft.Moles.NUnit.dll que acaba de copiar.

  5. En su clase de prueba VS, marcan un método de prueba con el atributo [Moled] (esto requerirá un using Microsoft.Moles.Framework.NUnit). Como alternativa, envuelva su implementación dentro de un bloque using (MolesContext.Create()) { ... } (esto requerirá un using Microsoft.Moles.Framework).

  6. Desde la línea de comandos, invoque corredor de prueba NUnit a través de los lunares corredor con lo siguiente: "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"

He descubierto que [Moled] atributo no trabajo con [TestCase (...)] y que le lleva de nuevo a la situación de error no instrumentado. En cambio, el bloque de using (MolesContext.Create()) trabaja en ese caso también.

Una vez que encuentre que todo funciona, podría considerar correr corredor topos como una herramienta externa dentro de Visual Studio. Sigue instrucciones en Operando Moles utilizando NUnit consola de Visual Studio , la actualización de los argumentos que en el paso 6.

Tenga en cuenta que esto era en una máquina de 64 bits de Windows 7, con NUnit 2.5.9, Microsoft Pex y Moles (x86) 0.94.51006.1. Tenga en cuenta sus carpetas reales para diferentes caminos, versiones, etc.

Otros consejos

Estoy usando la versión Moles 0.94.51023.0.

Por lo que yo sé, es necesario agregar el siguiente atributo a su método de ensayo. Estoy usando el marco de pruebas de Visual Studio, no está seguro de si se trata de la misma con NUnit, et. al.

[HostType("Moles")]

También he leído que se puede añadir el atributo [Moled] el método de ensayo, pero que no estaba disponible para mí, y yo no entró por qué, asumiendo que es la documentación de edad - lo que parece que hay una gran cantidad de con Moles.

Actualizar : Según el Manual de referencia Moles, pg. 26, el MoledAttribute en el método de prueba es el camino a seguir con NUnit. Debe registrar el Microsoft.Moles.NUnit.dll montaje con NUnit copiándolo a la NUnit bin / complementos carpeta.

A continuación, deberá añadir el atributo [Moled] el método de ensayo.

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

De lo contrario, se añadiría un bloque usando para envolver el método de ensayo de la siguiente manera:

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

Además de añadir la [HOSTTYPE ( "Moles")] atributo, es necesario envolver el corredor de prueba con el corredor lunares. Por ejemplo:

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

El corredor Moles es, probablemente, ubicado en C: \ Archivos de programa \ Microsoft Moles \ bin . Para el uso, ejecute:

moles.runner.exe help

superjos tiene la respuesta correcta y el uso de la mayor parte de la "prueba continua" Addin puede obtener Visual Studio para ejecutar el corredor Moles a través del corredor de la consola NUnit con este archivo por lotes:

@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

Sólo actualizar los caminos a su versión de los paquetes de software. Esto también se puede utilizar para ejecutar desde otros programas si usted tiene el tiempo para actualizarlo.

No se puede ejecutar MS Moles con NUnit desde dentro de Visual Studio. Debe utilizar MSTest (Pruebas de Visual Studio Unit) para hacer eso o puede ejecutar las pruebas NUnit con lunares desde el comando line.See la manual de referencia .

Una posible alternativa: si se ajusta a sus necesidades, es posible utilizar el href="http://www.gallio.org" rel="nofollow"> Galio plataforma de automatización

HTH! Thomas

scroll top