c++ - 在 Visual Studio 2013 Express 中运行谷歌测试

标签 c++ unit-testing visual-studio-2013 googletest vs-extensibility

由于我们以前的框架存在缺陷,我们刚刚改用 google test 进行单元测试。

在 Visual Studio 中,我有一个包含多个项目的解决方案。每个项目都包含使用 google test 对我们应用程序中的特定类(或链接类的集合)进行单元测试。我们仅使用 VS 来管理和运行谷歌测试并引用在其他地方找到的测试类。

当我想运行所有测试时,我将启动项目设置为多个,然后按 ctrl-f5。这会为每个项目弹出 1 个带有标准谷歌测试输出的控制台窗口。这很棒!不过,我必须单击一个键才能关闭每个输出窗口。集成到 VS2013 express 中的“Test Explorer”肯定会很好。

我找到了这个脚本运行器: https://visualstudiogallery.msdn.microsoft.com/9dd47c21-97a6-4369-b326-c562678066f0 .

这似乎正是我想要的,但显然 express 版本不允许扩展? (我是 visual studio 的新手。)无论如何,我们使用 express 而不是不同的版本,因为我们是商业的。我的后备解决方案是花钱购买完整版的 VS。但是,我更愿意找到一个免费的解决方案,这样我就不必证明购买的合理性,然后再为加入该组的每个新人处理 visual studio 的许可问题。

有人想出解决办法吗?

最佳答案

我们的团队还尝试使用“Google Test Runner”扩展。这 与 VS Test Explorer 的集成很棒,但我们不喜欢 我们看不到 gmock 警告的事实。这意味着 一些测试可以通过警告,您只需让它 错过并在未来制造问题。一样的问题 尝试使用 gmock 生成的 XML 输出时存在。

由于在控制台中查看输出是一个糟糕的选择,我们决定 解析运行测试的可执行文件的输出并显示它们 在浏览器中。为此,我们修改了该项目,使其直接 它的输出到一个文件(调试中的“> test_output.txt” ->命令 参数)并修改了 main 函数来解析输出, 将其插入到 html 文件模板中,保存此 html 文件,然后打开 它在默认浏览器中使用:

ShellExecute(NULL, NULL, "test_output.html", "", "", SW_SHOW);

这也使我们能够对结果的方式进行一些自定义 使用 javascript 显示。

您可以通过创建一个简单的项目来在您的案例中使用这种方法 会在多个启动项目列表中最后运行,解析输出 其他可执行文件并将其显示在浏览器中。我知道这个解决方案有 它的缺点,但它(在我看来)比忽略警告要好。

关于c++ - 在 Visual Studio 2013 Express 中运行谷歌测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35422068/

相关文章:

c++ - 为什么 main 函数中没有传递参数?

c++ - 使用字符串将文件名传递给 fstream

javascript - React Native - Jest.mock 必须是内联函数。测试使用 'withNavigation' 的组件时出现问题

node.js - Expresso 中的 -I 或 "unshift a path mean"是什么意思?

java - 单元测试有序 SQL 查询

c++ - 字符串转wstring,编码问题

c++ - 我如何获得 '.00' 形式的数字?

c# 计时器不准确?

visual-studio-2013 - Visual Studio 2013/2015 空闲 CPU 使用率

git - Visual Studio 2013 和 BitBucket