【问题标题】:Managing Integration Tests in C++在 C++ 中管理集成测试
【发布时间】:2015-10-20 13:19:34
【问题描述】:
我正在使用 Netbeans 开发具有单元测试和集成测试的企业项目。我正在使用 CPPUNIT 开发单元测试,但我遇到了问题。
如您所知,单元测试应该很快,所以我将它们开发得很小,每次需要时我都可以使用 IDE 插件运行它们。但是集成测试是一些耗时的测试,不能不时运行。那么我应该把它们存放在哪里呢?
如果我把他们放到另一个项目中,他们的管理将成为一场噩梦。如果我将它们放在当前项目中,我无法告诉 Netbeans 他们不应该在执行单元测试时运行。
你对我的问题有什么看法?
【问题讨论】:
标签:
c++
unit-testing
netbeans
integration-testing
cppunit
【解决方案1】:
我假设您使用的是 NB make build management(= 默认 C++ 项目)。这些非常棘手;你我尝试使用不同的配置,但这并不完美。
我的建议是使用专用的构建工具,例如Cmake,即greatly supported by Netbeans。这将允许您在一个项目中明确区分单元测试和集成测试。
所以你的项目可能看起来像这样:
<project>
|
+-- src/
|
+-- include/
|
+-- test/ (unit tests)
|
+-- integration/ (integration tests)
|
…
您可以使用不同的制作目标;例如。 make unittest 或 make integrationtest。也可以根据需要禁用每种测试(因此它们不会编译/携带依赖项)。
在构建设置中,您甚至可以设置,默认情况下 unittests 应构建并在每次构建后执行 - 而您手动运行 集成测试 随时随地。
顺便说一句。从现在开始,项目不再绑定到 IDE。您可以使用任何您想要的工具进行开发 + 持续集成服务器 也可以处理它。