每次成功编译后运行单元测试

时间:2017-06-06 13:15:34

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

考虑使用静态lib项目和带有单元测试的控制台应用程序的Visual Studio C ++解决方案。应用后构建步骤为"$(TargetDir)$(TargetFileName)",以便在每次成功编译时自动运行测试。

编译成功但测试失败时我想调试它们,所以我需要从VS运行它们。问题是如果测试失败,构建也被视为失败,因此VS拒绝运行。

不理想的解决方案是启用选项 enter image description here

因此,当您尝试运行失败的构建时,您将获得

enter image description here

(默认情况下,该选项为on,但迟早会有人点击“不再显示此对话框”。)

它不理想,因为它令人困惑,它再次触发构建(编译被跳过,因为它成功但测试再次运行,选项是全局的,意味着它适用于所有项目,即使那些不需要它的项目。它是当然不是什么大问题,只是想知道人们是否有一些聪明的黑客。

例如,C#项目构建事件有一个选项“当构建更新项目输出时” - 非常适合在每次编译后进行单元测试。

该项目是跨平台的,因此VS测试框架不适用。

1 个答案:

答案 0 :(得分:0)

我建议添加“makefile project”(文件 - >添加 - >新项目 - > Visual C ++ - > General - > Makefile项目),其中包含“运行单元测试”命令。并使测试应用程序本身不包含自运行。

然后,您的整个解决方案将在测试失败时失败,但测试本身会成功。

但是你的情况并不常见。通常情况下,除了测试应用程序,解决方案将包含“有用的工作应用程序”,然后单元测试将预先构建“有用的工作应用程序”(这也将依赖于测试应用程序)