2011-10-06 12 views
6

Estoy tratando de usar Fitnesse para interactuar con algún código C++, pero el archivo de proyecto Fit Cpp proporcionado en el sitio web fitnesse.org no funciona (es VC++ 6 que no tengo pero sí tengo Visual Studio 2005 y 2008). Ni siquiera puedo abrir el archivo de solución en VS2005 o VS2008 (¿quizás porque fue creado en VC++ 6?).¿Hay alguna forma de incorporar Fitnesse al código C++?

¿Alguien ha podido hacer que esto funcione? ¿Hay alguna forma de que pueda escribir un elemento de prueba en C# que se comunique con el código de C++? Si es así, ¿cómo hago esto?

Aquí es el sitio web con el código: http://fitnesse.org/FrontPage.FitServers.CppFit.CppTestTools.SetUpCppTestTools

Idealmente, me gustaría ser capaz de trabajar en esto en Visual Studio y evitar cygwin. ¿Debería morder la bala e ir con cygwin ... no estoy seguro de que incluso funcionará ... no lo he intentado.

Cualquier ayuda será muy apreciada. Gracias por adelantado.

Respuesta

2

El uso de C++/CLI es una opción. De esta forma, puede usar fitSharp como puente desde FitNesse hasta su código de dispositivo, pero su código de dispositivo puede llamar directamente a C++.

Aquí hay un ejemplo simple de probar una clase de calculadora. En primer lugar, aquí está el código C++ queremos prueba:

class Calculator 
{ 
    public: 
    int Add(int x, int y) 
    { 
     return x + y; 
    } 
}; 

y aquí está el código accesorio C++/CLI:

public ref class CalculatorFixture 
{ 
    public: 
    property int X; 
    property int Y; 
    property int Z; 

    void Execute() 
    { 
     Calculator calculator; 
     Z = calculator.Add(X,Y); 
    } 
}; 

La página wiki FitNesse se vería así:

!define TEST_SYSTEM {slim} 
!define COMMAND_PATTERN {%m -r fitSharp.Slim.Service.Runner,C:\fitnesse\fitsharp\fitsharp.dll %p} 
!define TEST_RUNNER {C:\fitnesse\fitsharp\Runner.exe} 

!path c:\CalculatorFixture.dll 

!|CalculatorFixture| 
|X   |Y   |Z?  | 
|2   |2   |4   | 
|3   |4   |7   | 

Un aspecto a tener en cuenta es que las DLL de C++/CLI generalmente son de 32 bits o de 64 bits, mientras que el corredor de ajusteSharp es 'cualquier CPU'. Entonces, si construye su DLL de C++/CLI como de 32 bits y trata de usar fitSharp con ella en un sistema operativo de 64 bits, obtendrá un error de "formato incorrecto". En ese caso, compile la DLL de C++/CLI como de 64 bits o use corflags para forzar el corrector de fitsharp (Runner.exe) de 32 bits.

+0

Excelente respuesta, pero necesito algo más de ayuda. Hay demasiadas formas de configurar proyectos de Visual Studio y esto supone que sé cómo hacerlo para el código C++/CLI. Además, me gustaría aclarar que necesito acceder al código de C++ a través de una DLL heredada que ya se ha creado y no puedo realizar ningún cambio en el código de C++. Gracias por la ayuda –

+0

En mis instalaciones VS 2008 y 2010 crea una DLL C++/CLI a través de Nuevo proyecto-> Otros idiomas-> Visual C++ -> CLR-> Biblioteca de clases. El acceso a una DLL heredada no debería ser un problema, solo use una lib de importación como lo haría desde una aplicación estándar de C++. – Andy

+0

¿Podría ver mi pregunta aquí? Http://stackoverflow.com/questions/32903687/working-with-fitnesse-fitsharp-and-c –

0

De vuelta en VC6 veces no había archivos de soluciones. En cambio, VC6 usa espacios de trabajo, almacenados en archivos .dsw. Los archivos del proyecto fueron .dsp.

Si abre .dsw o .dsp en un estudio de Visual Studio más nuevo, debería solicitarle que lo convierta, y eso debería dar como resultado nuevos archivos .sln y .vcproj creados para el proyecto. He convertido muchos proyectos complejos de VC6 a VS 2005, 2008 y 2010, en mi experiencia la conversión funciona de manera bastante confiable. Si hay algún problema con la conversión, VS lo mostrará en el registro de conversión.

+0

Hmmm no se le solicitó convertir. –

+0

Eso no puede ser. Compruebe la carpeta donde están los archivos dsw/dsp y asegúrese de que no queden más archivos .sln/.vcproj de los intentos anteriores. Borre todos esos e inténtelo de nuevo.Cuando finalice la conversión, debe tener abierto un registro de conversión que indique si hubo algún problema. – Miguel

+0

Acabo de probar esto. Me pidieron que convirtiera, pero el convertidor no funciona, no recibo nada. Si desea obtener VS para compilar, lo que recomiendo es que cree proyectos nuevos dentro de VS. Puede abrir los archivos dsp que le interesa recrear en el bloc de notas y ver la lista de archivos y opciones que se utilizan. – Miguel

Cuestiones relacionadas