我正在尝试使用Fitnesse与某些C ++代码进行交互,但fitnesse.org网站上提供的Fit Cpp项目文件不起作用(它是VC ++ 6,我没有,但我有Visual Studio 2005年和2008年)。我甚至无法在VS2005或VS2008中打开解决方案文件(可能是因为它是在VC ++ 6中创建的?)。
有没有人能够让这个工作?有没有办法在C#中编写一个与C ++代码通信的测试夹具?如果是这样,我该怎么做呢。
以下是包含以下代码的网站: http://fitnesse.org/FrontPage.FitServers.CppFit.CppTestTools.SetUpCppTestTools
理想情况下,我希望能够在Visual Studio中处理此问题并避免使用cygwin。我应该咬紧牙关和cygwin一起去...不确定哪个都会工作......还没试过。
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:2)
使用C ++ / CLI是一种选择。这样你就可以使用fitSharp作为从FitNesse到你的灯具代码的桥梁,但你的灯具代码可以直接调用C ++。
这是一个测试Calculator类的简单示例。首先,这是我们要测试的C ++代码:
class Calculator
{
public:
int Add(int x, int y)
{
return x + y;
}
};
这里是C ++ / CLI fixture代码:
public ref class CalculatorFixture
{
public:
property int X;
property int Y;
property int Z;
void Execute()
{
Calculator calculator;
Z = calculator.Add(X,Y);
}
};
FitNesse维基页面如下所示:
!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运行器是“任何cpu”。因此,如果您将C ++ / CLI DLL构建为32位并尝试在64位操作系统上使用fitSharp,则会出现“格式错误”错误。在这种情况下,要么将C ++ / CLI DLL构建为64位,要么使用corflags强制fitharp runner(Runner.exe)为32位。
答案 1 :(得分:0)
回到VC6时代,没有解决方案文件。相反,VC6使用了存储在.dsw文件中的工作空间。项目文件是.dsp。
如果在较新的Visual Studio中打开.dsw或.dsp,它应该提示您转换它,这应该会导致为项目创建新的.sln和.vcproj文件。我已经将许多复杂的项目从VC6转换为VS 2005,2008和2010,根据我的经验,转换工作非常可靠。如果转换有任何问题,VS会在转换日志中显示该问题。