2011-10-06 78 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

相关问题