在 C++ 中管理集成测试

Managing Integration Tests in C++

我正在使用 Netbeans 开发具有单元测试和集成测试的企业项目。我正在使用 CPPUNIT 开发单元测试,但我遇到了问题。 如您所知,单元测试应该很快,所以我将它们开发得很小,每次需要时我都可以通过使用 IDE 插件来 运行 它们。但是集成测试是一些耗时的测试,不能 运行 时不时地进行。那么我应该把它们存放在哪里呢? 如果我把它们放到另一个项目中,它们的管理将变成一场噩梦。如果我将它们放在当前项目中,我不能告诉 Netbeans 在执行单元测试时它们不应该 运行。 你对我的问题有什么看法?

我假设您正在使用 NB make 构建管理(= 默认 C++ 项目)。这些非常棘手;你我尝试使用不同的配置,但这并不完美。

我的建议是使用专用构建工具,例如Cmake, which is greatly supported by Netbeans。这将允许您在一个项目中明确分离单元测试和集成测试。

因此您的项目可能如下所示:

<project>
|
+-- src/
|
+-- include/
|
+-- test/ (unit tests)
|
+-- integration/ (integration tests)
|
…

您可以使用不同的 make 目标;例如。 make unittestmake integrationtest。也可以根据需要禁用每种测试(因此它们不会编译/携带依赖项)。

在构建设置中,您甚至可以设置 unittests 应该 build 并在每次构建 之后默认执行 - 而您运行 手动集成测试 需要时。

顺便说一句。从现在开始,项目不再绑定到 IDE。您可以使用您想要的任何工具进行开发 + 持续集成服务器 也可以处理它。