因此,我正在编写一些库并决定对其进行适当的单元测试(如 TDD 等)。QtTest 框架看起来很适合入手。图书馆本身很好,测试也很好。
但是当我将库和测试项目都添加到我的工作项目中时,CI 构建出人意料地失败了。发生测试可执行文件(Linux 上的 LibraryTest.exe 或类似文件)被复制:
- 到 Windows 上单独文件夹中的 %QTDIR%/tests
- 到 Linux 上的 /usr/tests
我的测试项目设置将此行为添加到“安装”构建阶段,它们是(重要的):
QT += core testlib
# The problem is below
CONFIG += c++11 qt warn_on depend_includepath #testcase
CONFIG -= app_bundle
LIBS *= -L$$PWD -lmylibrary # not exact, does not matter
TARGET = LibraryTest
SOURCES += \
tst_my_library_test.cpp
DEFINES *= QT_FORCE_ASSERTS
DESTDIR = $$PWD/bin
如您所见,注释掉CONFIG += testcase
可执行文件后不再复制到某处。我读过这个配置选项用于自动化测试,看起来很有用,但没有写任何关于任何特殊安装阶段的内容。测试可执行文件存在DESTDIR
就好了,所以它不是一些意外错误。
我的问题是:为什么会这样?我可以指定其他文件夹吗?自动化很有用,但即使实现了它也可能会绑定到一些更方便的目录。
我做错 QtTest 了吗?提前感谢您的关注。