【发布时间】:2012-08-20 23:42:36
【问题描述】:
我正在尝试使用 QTestLib 对我的 Qt 应用程序进行单元测试。我看到新的 Visual Studio 2012 有一个内置的 C++ 测试框架并通过谷歌搜索我看到this 页面讨论了测试本机项目的不同方法。我将有两个不同的项目,一个用于正常程序,一个用于测试。实际上,我的应用程序不是 DLL,而是一个简单的 C++ exe。用另一个项目来测试它以链接到 .obj 文件或库的最佳方法是什么?我不会从源代码中导出任何内容,因为我的不是 DLL
【问题讨论】:
-
假设您使用 qmake 作为构建工具。重复使用目标文件会使执行存根变得困难,因为您必须将测试单元的原始目标文件与存根的目标文件混合。为了使它成为可能,您需要将所有目标文件放在单独的目录中,即。例如,每个目录的每个单元。其他方法是生成一组静态库并在测试中重新使用它们。并且只是简单地在测试中包含源代码,它将被编译和链接两次。
-
我的应用程序是一个 EXE,我如何将它构建为一个静态库?但是我使用的是 Visual Studio,但我计划支持多个平台,因此未来的测试也应该在 Linux 上运行
-
只要你的架构中有独立的单元,你可以将它们拆分为独立的库。例如,任何自定义小部件或一组小部件都可以是一个单独的库。然后您将拥有一个主单元,它将所有其他单元粘合在一起并与代表它们的库链接。
标签: c++ unit-testing qt4 qtestlib