2011-10-06 46 views
6

我試圖使用Fitnesse與一些C++代碼進行交互,但fitnesse.org網站上提供的Fit Cpp項目文件不起作用(這是我沒有的VC++ 6,但是我有Visual Studio 2005和2008年)。我似乎甚至無法在VS2005或VS2008中打開解決方案文件(可能是因爲它是在VC++ 6中創建的?)。有沒有辦法將Fitnesse整合到C++代碼中?

有沒有人能夠得到這個工作?有沒有一種方法可以在C#中編寫與C++代碼通信的測試夾具?如果是這樣,我該如何去做這件事。

這裏是網站的代碼: http://fitnesse.org/FrontPage.FitServers.CppFit.CppTestTools.SetUpCppTestTools

理想情況下,我希望能夠在Visual Studio中這方面的工作,避免cygwin的。我應該只是咬住子彈,並與cygwin一起去......不知道甚至會起作用......還沒有嘗試過。

任何幫助將不勝感激。提前致謝。

回答

2

使用C++/CLI是一種選擇。這樣,您可以使用fitSharp作爲從FitNesse到您的燈具代碼的橋樑,但您的燈具代碼可以直接調用到C++中。

下面是測試Calculator類的一個簡單示例。首先,這裏我們要測試的C++代碼:

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

和這裏的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); 
    } 
}; 

的FitNesse的wiki頁面是這樣的:

!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   | 

需要注意的一個問題是C++/CLI DLL通常是32位或64位,而fitSharp runner是'any cpu'。因此,如果您將C++/CLI DLL構建爲32位並嘗試在64位操作系統上使用fitSharp,則會出現「格式不正確」錯誤。在這種情況下,要麼將C++/CLI DLL構建爲64位,要麼使用corflags來強制fitharp runner(Runner.exe)爲32位。

+0

很好的答案,但我需要一些更多的幫助。有很多方法來設置Visual Studio項目,並假設我知道如何爲C++/CLI代碼執行此操作。另外,我想澄清一下,我需要通過已經創建的傳統DLL訪問C++代碼,並且不能對C++代碼進行任何更改。感謝您的幫助 –

+0

在我的VS 2008和2010安裝中,您可以通過New Project-> Other Languages-> Visual C++ - > CLR-> Class Library來創建一個C++/CLI DLL。訪問傳統的DLL應該不成問題 - 只需像使用標準C++應用程序那樣使用導入庫即可。 – Andy

+0

你能否看到我的問題在這裏http://stackoverflow.com/questions/32903687/working-with-fitnesse-fitsharp-and-c –

0

回到VC6時代,沒有解決方案文件。相反,VC6使用了存儲在.dsw文件中的工作區。項目文件是.dsp。

如果您在較新的Visual Studio中打開.dsw或.dsp文件,它應該提示您將其轉換,並且這應導致爲該項目創建新的.sln和.vcproj文件。我已將許多複雜項目從VC6轉換爲VS 2005,2008和2010,以我的經驗,轉換工作非常可靠。如果轉換有任何問題,VS會在轉換日誌中向您顯示。

+0

嗯沒有得到提示轉換。 –

+0

那不可能。請檢查dsw/dsp文件所在的文件夾,並確保以前的嘗試中沒有遺留.sln/.vcproj。刪除所有這些,然後重試。轉換完成後,您應該打開一個轉換日誌,指出是否有任何問題。 – Miguel

+0

我剛試過這個。我確實被要求轉換,但轉換器不工作,我沒有得到任何東西。如果你想要構建VS,我建議你從VS中創建全新的項目。您可以打開您想在記事本中重新創建的dsp文件,並查看使用的文件和選項列表。 – Miguel

相關問題