【问题标题】:Unit Testing C++ static library单元测试 C++ 静态库
【发布时间】:2016-09-07 13:40:33
【问题描述】:

我制作了一个小型 C++ 库,我想对其进行测试。但是,由于静态库的性质,我无法在它们上运行 main() 函数……尽管这正是我想做的。我想创建一个简单的头文件和源文件来使用库的类,所以如果有什么不顺利的话我可以调试它。我可以创建一个不同的项目,但我不确定这是否是正确的方法。 有没有其他方法可以做到这一点?我使用 Visual Studio 2015 作为 IDE。

【问题讨论】:

  • " 我可以创建一个不同的项目..." 所以你正在使用一些特定的 IDE?对于他们中的大多数人来说,拥有一个单独的单元测试项目是正确的选择。
  • 哦,我的错!我使用 VS2015 并用它编辑了我的问题。我认为一个新项目是“矫枉过正”,但我现在要研究一下
  • VS 内置了测试项目模板和测试系统(MSTest)。查看 VS 的文档。
  • @Dai 无法支持您的评论(今天没有投票),但我只想写同样的内容。
  • 谢谢!我也打算研究一下,看起来很有希望。

标签: c++ unit-testing visual-studio-2015


【解决方案1】:

但是,由于静态库的性质,我无法在它们上运行 main() 函数...尽管这正是我想做的。

对于单元测试,最终您需要有一个main() 函数来触发运行测试(这就是所谓的测试运行器)。

您是对的,您不能为您的库提供 main() 函数,因为这会导致与链接到您的库的其他程序发生冲突。

因此,对于大多数构建为单独目标(项目)的构建系统(或 IDE),这涉及构建可执行的测试运行器目标。

VS2015 有一个builtin project template 来提供这个功能。

其他构建系统可能依赖于单元测试框架,例如 gtest,它还提供了 main() 来实现按需测试运行器。

【讨论】:

    猜你喜欢
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    • 2021-11-06
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多