2011-10-06 6 views
6

Sto cercando di utilizzare Fitnesse per interfacciare con qualche codice C++, ma il file di progetto Fit Cpp fornito sul sito web fitnesse.org non funziona (è VC++ 6 che non ho ma Visual Studio 2005 e 2008). Non riesco nemmeno ad aprire il file della soluzione in VS2005 o VS2008 (forse perché è stato creato in VC++ 6?).C'è un modo per incorporare Fitnesse nel codice C++?

Qualcuno è riuscito a farlo funzionare? C'è un modo per scrivere un dispositivo di prova in C# che comunichi con il codice C++? Se è così, come faccio a fare questo.

Ecco il sito con il codice: http://fitnesse.org/FrontPage.FitServers.CppFit.CppTestTools.SetUpCppTestTools

Idealmente, vorrei essere in grado di lavorare su questo in Visual Studio ed evitare Cygwin. Dovrei solo mordere il proiettile e andare con cygwin ... non sono sicuro che funzionerà anche ... non ho provato.

Qualsiasi aiuto sarà molto apprezzato. Grazie in anticipo.

risposta

2

L'utilizzo di C++/CLI è un'opzione. In questo modo puoi usare fitSharp come bridge da FitNesse al tuo codice fixture, ma il tuo codice fixture può chiamare direttamente in C++.

Ecco un semplice esempio di test di una classe Calculator. In primo luogo, ecco il codice C++ vogliamo testare:

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

ed ecco il codice apparecchio 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 pagina wiki FitNesse sarebbe simile a questa:

!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 problema da tenere a mente è che le DLL C++/CLI sono generalmente a 32 o 64 bit, mentre il runer fitSharp è "any cpu". Quindi, se costruisci la tua DLL C++/CLI a 32 bit e provi a usare fitSharp con esso su un sistema operativo a 64 bit, otterrai un errore di 'formato errato'. In tal caso, compilare la DLL C++/CLI come 64-bit o utilizzare corflags per forzare il runharp runner (Runner.exe) a 32-bit.

+0

Ottima risposta, ma ho bisogno di ulteriore aiuto. Ci sono troppi modi per configurare i progetti di Visual Studio e questo presuppone che io sappia come farlo per il codice C++/CLI. Inoltre, vorrei chiarire che ho bisogno di accedere al codice C++ tramite una DLL legacy che è già stata creata e non posso apportare alcuna modifica al codice C++. Grazie per l'aiuto –

+0

Nelle installazioni VS 2008 e 2010 si crea una DLL C++/CLI tramite Nuovo progetto-> Altre lingue-> Visual C++ -> CLR-> Libreria di classi. L'accesso a una DLL legacy non dovrebbe essere un problema: basta usare una lib di importazione come si farebbe con un'applicazione C++ standard. – Andy

+0

Potrebbe vedere la mia domanda qui http://stackoverflow.com/questions/32903687/working-with-fitnesse-fitsharp-and-c –

0

Indietro in VC6 volte non c'erano file di soluzioni. Invece, VC6 utilizzava spazi di lavoro, memorizzati in file .dsw. I file di progetto erano .dsp.

Se si apre il .dsw o .dsp in un nuovo Visual Studio, è necessario chiedergli di convertirlo e ciò dovrebbe comportare nuovi file .sln e .vcproj creati per il progetto. Ho convertito molti progetti complessi da VC6 a VS 2005, 2008 e 2010, nella mia esperienza la conversione funziona in modo abbastanza affidabile. Se ci sono problemi con la conversione VS ti mostrerà questo nel log di conversione.

+0

Hmmm non è stato richiesto di convertire. –

+0

Questo non può essere. Controlla la cartella in cui si trovano i file dsw/dsp e assicurati che non ci siano più di .sln/.vcproj da tentativi precedenti. Elimina tutti quelli e riprova.Quando la conversione è completata, dovresti avere un registro di conversione aperto che indica se ci sono stati problemi. – Miguel

+0

Ho appena provato questo. Mi è stato chiesto di convertire, ma il convertitore non funziona, non ricevo nulla. Se vuoi far costruire VS, ti consiglio di creare nuovi progetti da VS. È possibile aprire i file dsp che si desidera ricreare nel blocco note e visualizzare l'elenco di file e opzioni utilizzati. – Miguel