我试图用Google测试开始测试我的Qt项目。我读了Qt Docs,但只有描述,如何创建和运行测试,但没有集成。所以我有一些问题。
现在我以这种方式存储测试项目:
project.pro
|
--- subproject1.pri
|
--- subproject2.pri
|
| ...
|
--- test_project.pri
|
--- init_tests.cpp
这是放置测试的正确方法吗?
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
现在我从init_tests.cpp
运行它。然后我从init_tests
函数调用main
。这似乎不对,但我不知道另一种方法。
因此,如果我使用之前描述的方法来集成测试,我该如何从部署中删除它?
我应该在git repo中放置测试?我为我的测试创建了分支,然后将其合并到master。这是对的吗?
谢谢你的回答,抱歉我的英语不好。
答案 0 :(得分:1)
对问题4的回答:对于第一个实现来说似乎是正确的,但是这个分支必须死掉,你不想在测试中有一个分支。在任何分支上进行的提交必须包含相关的单元测试,并且只有在测试为绿色时才必须推送...
对问题1/2的回答:您的测试应该是一个独立的可执行文件,不应该发送到您的客户端。通常,每个可执行目标都有一个专业文件。所以我宁愿这样做:
project.pro
|
--- subproject1.pri
|
--- subproject2.pri
|
| ...
|
test_project.pro
--- test_project.pri
|
--- main.cpp
使用main.cpp保存你的行:
:testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
突然间它变得明显,你不觉得吗?
(当然只有test_project.pro包含对Google Test的包含和引用)
对问题3的回答:也变得明显。
注意:为了实现这一点,它假设您在subproject1和subproject2中所做的操作是可访问的,即这些库是静态的,包含在test_project.pro中或包含导出符号的动态库中。