在CTest中注册QTest上的测试,除了可执行文件(如GTest实现)



我有一个包含多个测试的可执行文件,使用QTest编写.
正在使用add_tests(NAME test_name COMMAND test_executable)注册可执行文件。显然,测试将作为CTest中的一个来处理。因此,如果数百个系统中有一个出现故障,就很难找到问题所在。当添加带有测试的新可执行文件时,情况会更糟。

是否可以像GTest实现那样单独注册测试?是否有替代GTEST_ADD_TESTS或GTEST_DISCOVER_TESTS的CMake函数用于QTest测试?

使用ADD_CUSTOM_TARGET来运行您的测试。

add_custom_target(run_test qtest_executable_target)
cmake <dir>
cmake --build <dir> -t run_test

使用QTest我没有找到解决方案,但尝试了另一种有效的方法。

我将测试框架更改为GTest。但是,测试应用程序仍然链接到QTest

来自gtest_main模块的默认main函数可能不兼容,因为它需要为Qt的许多特性初始化QApplication。在gtest_main。Cc源文件。

#include <cstdio>
#include <gtest/gtest.h>
#include <QApplication>
int main(int argc, char ** argv)
{
QApplication app(argc, argv);
printf("Running main() from %sn", __FILE__);
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}

测试后,我没有发现任何问题,以及使用GTEST_ADD_TESTS或GTEST_DISCOVER_TESTS CMake函数。

相关内容

  • 没有找到相关文章

最新更新