用C ++进行VisualAssert测试,加载测试夹具

时间:2010-04-21 10:40:47

标签: visual-studio-2008 unit-testing testing visual-c++

美好的一天, 我正在学习Visual Studio C ++中的测试,我有几个教程,我已经遵循。我正在尝试加载测试夹具。我试图将测试.cpp文件放在许多不同的地方但是当我点击“运行测试”或“运行测试而无需调试”时它仍然无法接收它

在我发现的教程中,它们似乎自动加载到测试资源管理器中,但是我的是带有X +(PROJECTNAME).EXE的图标,当我翻过它时,我得到了

退出过程而未向代理注册...这是因为该模型不包含任何测试装置......

如何将测试加载到测试资源管理器中......或者将其注册到我的项目...

我尝试右击并“添加夹具......”....

但是这只是启动一个新的测试文件,我遇到了同样的问题。

有人知道我是如何解决这个问题的吗?

2 个答案:

答案 0 :(得分:0)

最可能的原因是缺少环境变量 CFIX_HOME 。 尝试设置它(通常为“c:\ Program Files(x86)\ VisualAssert \”)并重新启动VS. 还可以通过包含以下路径来更新项目的设置:

C/C++ -> General -> AdditionalIncludeDirectories $(CFIX_HOME)\include
Linker -> General ->AdditionalLibraryDirectories $(CFIX_HOME)\lib\amd64
我完全按照你所描述的方式面对同样的问题并以这种方式解决了问题。

将cfix / Visual Assert代码直接包含在项目中的一个缺点是你的.exe将需要cfix.dll才能启动。但是,这种行为帮助我发现了问题:)

来自@Neutrino的

更新是有道理的。 我得到了其他问题:

    再次出现“测试资源管理器”窗口中项目名称上的
  • 红色X,其属性包含异常消息: Cfix.Control.CfixException:找不到测试模块。 ---> System.Runtime.InteropServices.COMException(0x8004B009):来自HRESULT的异常:0x8004B009
  • '测试资源管理器'和'测试运行'窗口不适合他们在每个VS2008运行中的位置,而是保持在上面。

可能这是因为在W7 x64 + VS2008的某处安装了Visual Assert坏了

答案 1 :(得分:0)

我遇到了同样的问题。 CFIX_HOME环境变量和VS 2008路径设置正确。我将i386 cfix.dll复制到了与我的测试exe相同的目录。

执行命令:

"%CFIX_HOME%\bin\i386\cfix32.exe" -exe "%CD%\VisualAssertTest1.exe"

导致cfix输出,然后退出。

cfix version 1.6.0.3683 (fre)
(C) 2008-2010 - Johannes Passing - http://www.cfix-testing.org/
Hello

'Hello'只是我的测试程序的简单输出,所以我可以确保它正确加载。

只有当我将我的exe复制到%CFIX_HOME%\ bin \ i386 \中时,它才能正常工作,然后它所做的一切都是输出

cfix version 1.6.0.3683 (fre)
(C) 2008-2010 - Johannes Passing - http://www.cfix-testing.org/
[Success]      VisualAssertTest1.MyTest1.Test

然后我尝试使用Visual Studio运行命令运行它。我修改了我的项目设置如下。

Configuration Properties\Debugging:
    Command: $(CFIX_HOME)\bin\i386\cfix32.exe
    Command Arguments: -exe "$(TargetPath)"
    Working Directory: $(CFIX_HOME)\bin\i386

这会运行,但您无法知道发生了什么,因为cfix32.exe会立即退出并且Visual Studio不会捕获输出。添加-y选项以请求cfix32.exe在测试运行结束时暂停,结果是:

-y and -Y are currently not supported in conjunction with -exe

就我而言,这是最重要的。

总结一下。

由于某些原因,在测试exe时,你看不到任何图形输出。

在测试exe时,Visual Studio插件没有检测到任何测试用例,而您没有简单的方法来选择要运行的测试用例。

在控制台窗口中手动运行是捕获输出的唯一方法。

我从原生C ++单元测试程序中想要的就是:

  1. 能够向exe添加测试。
  2. 能够从IDE内部以交互方式选择和运行这些测试。
  3. 当我第一次听到提及这个程序时,我以为我会打金,但遗憾的是不是。仍然看起来更接近我正在寻找的东西,而不是我见过的任何东西,所以我会坚持一段时间。

    @Johannes很高兴知道它是否还在开发中。