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

Bri*_*nan 6 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一起去......不确定它是否会起作用......没试过.

任何帮助都感激不尽.提前致谢.

And*_*ndy 2

使用 C++/CLI 是一种选择。这样您就可以使用 fitSharp 作为从 FitNesse 到您的装置代码的桥梁,但您的装置代码可以直接调用 C++。

这是测试 Calculator 类的简单示例。首先,这是我们要测试的 C++ 代码:

class Calculator
{
  public:
    int Add(int x, int y)
    {
      return x + y;
    }
};
Run Code Online (Sandbox Code Playgroud)

这是 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);
    }
};
Run Code Online (Sandbox Code Playgroud)

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         |
Run Code Online (Sandbox Code Playgroud)

需要注意的一个问题是,C++/CLI DLL 通常是 32 位或 64 位,而 fitSharp 运行程序是“任何 cpu”。因此,如果您将 C++/CLI DLL 构建为 32 位并尝试在 64 位操作系统上使用 fitSharp,您将收到“格式不正确”错误。在这种情况下,要么将 C++/CLI DLL 构建为 64 位,要么使用 corflags 强制 Fitsharp 运行程序 (Runner.exe) 为 32 位。