使用一个可执行文件中的单元测试构建项目

时间:2016-04-24 15:18:09

标签: c++ unit-testing cmake try-catch

我正在使用CMake和Catch / gmock在C ++中设置项目进行单元测试(这不是很重要,单元测试框架的工作方式类似)。我的目标是Windows(MSVC编译器)和Linux平台。我想将所有测试放在Catch的tutorial中所描述的单个可执行文件中。对于单元测试目的,我可能会做一些虚假的实现/模拟。我担心当我将所有东西都构建成一个可执行文件(带有测试源,项目源,虚假实现的文件)时,我会得到链接器多个定义错误,因为会有多个函数定义:true和fake。我现在看到可能的解决方案:

  1. 构建多个可执行文件,每个都有正确的实现 - 我看到这个最糟糕的解决方案,因为我将最终得到一堆文件,我将不得不执行以测试程序(可能通过一些脚本,但它不方便选项)。

  2. 使用它对共享库的依赖性编译每个测试,所有这些都将与主测试运行程序可执行文件链接。我认为这很难实现,特别是我不熟悉Linux共享库。对于Windows,它应该适用于某些dllexports,但不是很容易。

    如何解决这个问题?什么是现实世界的解决方案?也许我没有看到一些非常简单的东西,我正在寻找一个不存在的问题?我想要一个非常简单的多平台解决方案。

0 个答案:

没有答案