是否有办法将fitness合并到c++代码中?

Is there a way to incorporate Fitnesse into C++ code?

本文关键字:c++ 代码 合并 fitness 是否      更新时间:2023-10-16

我试图使用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一起去吗?我也不确定这是否有效…没有试过。

任何帮助都将非常感激。

使用c++/CLI是一种选择。这样你就可以使用fitSharp作为FitNesse和你的fixture代码之间的桥梁,但是你的fixture代码可以直接调用到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 wiki页面应该是这样的:

!define TEST_SYSTEM {slim}
!define COMMAND_PATTERN {%m -r fitSharp.Slim.Service.Runner,C:fitnessefitsharpfitsharp.dll %p}
!define TEST_RUNNER {C:fitnessefitsharpRunner.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强制fitsharp runner (runner .exe)为32位。

回到VC6时代,没有解决方案文件。相反,VC6使用存储在.dsw文件中的工作区。项目文件为。dsp.

如果您在较新的Visual Studio中打开。dsw或。dsp,它应该提示您转换它,这应该导致为项目创建新的。sln和。vcproj文件。我已经转换了许多复杂的项目从VC6 VS 2005, 2008和2010,在我的经验转换工作相当可靠。如果转换有任何问题,VS将在转换日志中显示给你。