是否有办法将fitness合并到c++代码中?
Is there a way to incorporate Fitnesse into C++ code?
我试图使用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将在转换日志中显示给你。
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 在Linux for Windows上编译C++代码时出错
- 我的字符计数代码计算错误.为什么
- 孤立代码块在结构中引发异常
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 此代码是否违反一个定义规则
- 为什么我的代码在输出中增加了93天
- 我的简单if-else语句是如何无法访问的代码
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 为什么在这个代码结束循环中没有得到结束
- 在c代码之间共享数据的最佳方式
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值