【问题标题】:Google Unit Test Confusion谷歌单元测试混淆
【发布时间】:2015-05-04 18:10:38
【问题描述】:

我对单元测试应该放在哪里有点困惑。所有的文档都让我相信我必须创建一个测试项目。真的吗?使用 JUnit,我们只是在我们的应用程序项目中创建了一个测试包(文件夹),并且测试将在每次构建时运行。

我是 C++ 新手,想了解 Google 测试的工作原理。我在 SO 上找到了很多非常好的问题和答案,是的,我已经阅读了 Google 测试文档,但我仍然对这件事感到困惑:

我能否在我的项目中创建一个包含所有单元测试的子文件夹,例如 他们将在每次构建时执行?

如果是,那么您能帮我找到所需的信息/示例吗?

好的,我在 Primer 中找到了:https://github.com/google/googletest/blob/master/googletest/docs/primer.md

一旦您能够编译 Google 测试库,您应该为您的测试程序创建一个项目or build target。这是有前途的!也许文档只是一直提到创建一个项目,并没有明确说明测试代码可以在您的应用程序项目中?

不!正如 πάντα-ῥεῖ 在 他的回答。

【问题讨论】:

    标签: c++ unit-testing googletest


    【解决方案1】:

    “所有文档都让我相信我必须创建一个测试项目。真的吗?”

    是的,你必须使用 c++,因为没有通用的 test runner 可执行工件,因为它是 JUnit 提供的。

    我可以在我的项目中创建一个包含所有单元测试的子文件夹,以便它们将在每次构建时执行吗?

    我建议将所有测试用例类(作为普通的.cpp 源)放入一个单独的项目中,并从一个单独的库项目中与被测类链接。将gtest_all.cc 包含在main() 函数中,或者将gtest 库链接到测试项目中。

    要运行测试用例,请添加从该项目运行 UnitTester 工件构建作为附加构建步骤。


    “也许文档只是一直提到创建项目,并没有明确说明测试代码可以在您的应用程序项目中。”

    嗯,这在很大程度上取决于您的实际 IDE/构建系统什么是单个项目(因此我更喜欢将这个术语用于单个工件),以及 解决方案(或 workspace) 的相关集合。

    【讨论】:

    • 嗨,πάντα-ῥεῖ:我还是有点困惑,在这里发布了另一个问题:stackoverflow.com/q/30041576/1735836
    • @Lucy 刚刚看到,现在您将 CMake 用作构建系统。 googletest 开箱即用地支持 IIRC CMake(反之亦然)。给我一点时间(这里已经很晚了)。我已经使用带有各种 IDE/构建系统的 googletest 设置了各种测试项目。
    • 好的。非常感谢
    • 嗨,πάντα-ῥεῖ:我还有另一个问题:stackoverflow.com/q/30084295/1735836。你可能知道还需要什么。感谢您的所有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    相关资源
    最近更新 更多