有没有办法将Fitnesse合并到C ++代码中?

时间:2011-10-06 15:48:31

标签: c++ testing fitnesse

我正在尝试使用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一起去...不确定哪个都会工作......还没试过。

任何帮助将不胜感激。提前谢谢。

2 个答案:

答案 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会在转换日志中显示该问题。