我正在尝试用QTestLib对我的Qt应用程序进行单元测试。我看到新的Visual Studio2012有一个内置的C++测试框架,我在谷歌上看到了this页面,其中谈到了测试本机项目的不同方法。我会有两个不同的项目,一个用于正常程序,另一个用于测试。实际上,我的应用程序不是DLL,而是一个简单的C++ exe。使用另一个项目来链接.obj文件或库是测试它的最佳方式吗?我不会从源代码中导出任何内容,因为我的不是DLL
发布于 2012-09-03 17:55:09
这是一个典型的QtTest项目,包含三个代码单元: unit1、unit2和unit3
project/
├── project.pro
├── src
│ ├── main.cpp
│ ├── src.pro
│ ├── unit1.cpp
│ ├── unit1.h
│ ├── unit2.cpp
│ ├── unit2.h
│ ├── unit3.cpp
│ └── unit3.h
└── tests
├── stubs
│ ├── stubs.pro
│ ├── unit1_stub.cpp
│ ├── unit2_stub.cpp
│ └── unit3_stub.cpp
├── test1
│ ├── test1.cpp
│ ├── test1.h
│ └── test1.pro
├── test2
│ ├── test2.cpp
│ ├── test2.h
│ └── test2.pro
├── test3
│ ├── test3.cpp
│ ├── test3.h
│ └── test3.pro
└── tests.pro这个项目产生了4个二进制文件:1个应用程序本身和3个用于测试每个单元的测试二进制文件。例如,测试应该包括src/unit1.cpp、src/unit1.h以及存根和unit3: src/unit2.h、test1 /stubs/ unit2 _stub.cpp、src/unit2.h、unit2/stubs/unit3_stub.cpp。使用这种设置,src/unit1.cpp和test/stubs/unit1_tests.cpp将编译两次,如果单元数更大,这个数字还会增加。这对于小项目来说不是问题,但对于大型项目来说,这可能会导致构建时间的显著增加。
然后,将unitX.cpp和unitX.h拆分到单独的库中,并静态链接到主应用程序,每次测试都将消除多次构建的需要。
https://stackoverflow.com/questions/12125833
复制相似问题