在项目中使用QT单元测试-主(..)函数冲突
Using QT Unit Tests in a project - conflicting main(...) functions
我在使用单元测试开发应用程序的崇高道路上迈出了第一步,但事实证明这是一条艰难而艰难的道路。我正在Qt中开发一个应用程序,所以考虑使用他们的QTestLib框架。现在,我知道了如何进行单元测试,但我似乎不知道如何将单元测试纳入项目中。假设我有一个控制台应用程序,它只有一个main.cpp和一个cpp和h文件,用于我要开发的类,比如MyClass。我想正确的做法是创建一个相应的测试类MyClassTest及其h和cpp文件。但我应该把它放在同一个项目中吗?或者创建一个单独的项目,只用于单元测试,它可以访问"主"项目中的文件(还不确定我该怎么做)?
如果主应用程序和测试都在同一个项目中,我如何在不运行应用程序或相反的情况下运行测试?我尝试将Qt的单元测试教程1中的文件合并到控制台项目中,但问题是它们使用了一个扩展为main(...)
函数的宏QTEST_MAIN(TestQString)
。这会导致与main.cpp中的main(...)
发生冲突。好吧,我可以重命名其中任何一个,但问题仍然存在——然后我如何运行测试或应用程序本身?如果我覆盖QTEST_MAIN
宏(这无论如何都是个坏主意),我将禁用测试。如果我在main.cpp中重命名main(...)
函数,那么实际的应用程序永远不会被执行。我想应该有一种方法为项目制作两个单独的可执行文件,一个运行单元测试,另一个启动应用程序,但不知道如何进行
一定要为测试创建一个单独的项目。如果将应用程序项目和测试项目并排排列在目录中,则应该能够使用test.pro
文件中的相对路径引用应用程序项目中的代码单元。
我使用这个博客上提供的非常方便的测试运行程序。
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- 我在C++中使用提升哈希函数将 3 个双精度组合成一个面临冲突的哈希
- 为什么构造函数 Message(const T&data) 与 Message(T&& data) 冲突,当 T = int&时?
- VS2017 #error: : snprintf 的宏定义与标准库函数声明冲突
- 如何处理冲突的函数和变量名称?
- 无冲突的哈希函数
- 使用 EvtSetChannelConfigProperty() 函数时出现访问冲突错误
- (此函数用于计算 SMA).在 FA.exe 中0x00509159引发异常: 0xC0000005:访问冲突读取位置0
- 函数 AfxEndThread 中的读取访问冲突"pThread-> was nullptr"
- 读取类的析构函数中的位置时发生访问冲突
- 使用 Murmur2 64 位哈希函数生成会导致冲突的输入
- 在 C 代码中调用 Python 函数时第三次出现访问冲突写入位置错误
- 使用向量的函数崩溃,调试器说访问冲突读取位置
- 读取IMAGE_EXPORT_DIRECTORY以查找导出的函数名称会导致访问冲突
- 可变参数模板类 - 0 长度包构造函数冲突
- C++结构构造函数和函数冲突
- 在项目中使用QT单元测试-主(..)函数冲突
- 复制构造函数与pch中的const成员函数冲突?一个gcc错误
- Arduino方法名称与库函数冲突
- 概念与复制构造函数冲突的泛型编程