我正在开发一个包含50多个库和可执行文件的大型C ++项目。我开始为每个模块添加googletest测试。我读到谷歌建议将测试放在可执行文件而不是库中,以使生活更轻松。为每个单独的组件创建一个单独的可执行文件我将获得50多个测试可执行文件,并且为了一次性运行它们,我需要创建一个外部脚本,它还需要将它们的输出组合到一个单独的脚本中。 这是推荐的事情吗?
或者我应该为每个单独模块的测试创建一个库,并将所有这些库链接到单个测试可执行文件?但是,对单个模块运行测试变得不那么方便了。我需要构建所有测试并通过gtest_filter标志指定主测试可执行文件,此时应执行哪些测试。
这真的有助于我了解其他人如何做到这一点以及这里的最佳做法。
谢谢
答案 0 :(得分:1)
[...]并且为了一次性运行它们,我需要创建一个 外部脚本,也需要将他们的输出结合到一个 单身。
可能实际上并不需要将输出组合到单个文件中。例如,使用Jenkins,您可以为Google Test输出文件指定通配符模式。
因此,如果您真的只想在Jenkins(或Hudson或您使用的任何CI工具)中看到Google测试结果,这可能是一个可能的解决方案:
您可以从一个简单的脚本(甚至是Make规则)运行所有测试可执行文件,参数--gtest_output=xml:
后跟目录名(即以斜杠结尾) )。然后,每个测试可执行文件都会将自己的XML文件写入该目录,然后您可以配置CI工具以读取该目录中的所有文件。