Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 有没有办法将Fitnesse整合到C++;密码?_C++_Testing_Fitnesse - Fatal编程技术网

C++ 有没有办法将Fitnesse整合到C++;密码?

C++ 有没有办法将Fitnesse整合到C++;密码?,c++,testing,fitnesse,C++,Testing,Fitnesse,我试图使用FiNeNeSe与一些C++代码进行交互,但是FITNES.OG网站上提供的FIT CPP项目文件不起作用(它是VC++ 6,而我没有,但我有Visual Studio 2005和2008)。我甚至无法在VS2005或VS2008中打开解决方案文件(可能是因为它是在VC++6中创建的?) 有人能让它工作吗?有没有办法在C++中编写一个与C++代码通信的测试工具?如果是的话,我该怎么做呢 以下是带有代码的网站: 理想情况下,我希望能够在VisualStudio中处理这个问题,避免cyg

我试图使用FiNeNeSe与一些C++代码进行交互,但是FITNES.OG网站上提供的FIT CPP项目文件不起作用(它是VC++ 6,而我没有,但我有Visual Studio 2005和2008)。我甚至无法在VS2005或VS2008中打开解决方案文件(可能是因为它是在VC++6中创建的?)

有人能让它工作吗?有没有办法在C++中编写一个与C++代码通信的测试工具?如果是的话,我该怎么做呢

以下是带有代码的网站:

理想情况下,我希望能够在VisualStudio中处理这个问题,避免cygwin。我应该咬紧牙关和cygwin一起去吗。。。我也不确定这是否有效。。。我没试过


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

使用C++/CLI是一种选择。这样,您可以使用FITHARP作为FITNESE到您的固定代码的桥梁,但是您的夹具代码可以直接调用C++。 下面是一个测试计算器类的简单示例。首先,这里是我们要测试的C++代码:

class Calculator
{
  public:
    int Add(int x, int y)
    {
      return x + y;
    }
};
下面是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);
    }
};
FitNesse wiki页面如下所示:

!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 runner是“任意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转换为VS2005、2008和2010,根据我的经验,转换工作相当可靠。如果转换有任何问题,VS将在转换日志中显示

Hmmm没有得到转换的提示。这不可能。请检查dsw/dsp文件所在的文件夹,并确保没有以前尝试中遗留的.sln/.vcproj。删除所有这些内容,然后重试。转换完成后,您应该打开一个转换日志,指示是否存在任何问题。我刚刚尝试了这个。我确实被要求转换,但转换不起作用,我什么也得不到。如果您想让VS进行构建,我建议您从VS中创建全新的项目。您可以在记事本中打开您感兴趣的dsp文件,并查看所使用的文件和选项列表。我删除了所有文件并从网站上重新下载了它们,现在它要求进行转换。我能够在Debug Config.interest中构建该项目。我在VS2010上试过这个,但我无法得到一个转换过的项目。但无论如何,很高兴你取得了进步!回答得很好,但我需要更多的帮助。设置VisualStudio项目的方法太多了,这假设我知道如何为C++/CLI代码设置VisualStudio项目。另外,我想澄清一下,我需要通过已经创建的遗留DLL访问C++代码,并且我不能对C++代码进行任何更改。感谢您在我的VS 2008和2010安装中提供的帮助,您可以通过新建项目->其他语言->Visual C++->CLR->类库创建一个C++/CLI DLL。访问遗留的DLL应该没有问题——只需像一个标准的C++应用程序那样使用一个导入库,请您在这里看到我的问题。