如何解决如何让 catch2 运行驻留在静态库中的测试?
我通常使用 catch2 的工作流程是拥有一个包含所有测试用例和测试“运行程序”的单一控制台应用程序。
例如:
file1.cpp、file2.cpp 包含测试:
#include <catch2/catch.hpp>
TEST_CASE("test","[test]")
{
CHECK(true);
}
单个文件 main.cpp 将包含运行程序代码:
#define CATCH_CONFIG_RUNNER
#include <catch2/catch.hpp>
int main(int argc,char* argv[])
{
return Catch::Session().run(argc,argv); // run tests
}
为了减少编译时间,我尝试将包含测试的所有文件(file1、file2 等)移动到单独的静态库项目 (Visual Studio)。
但是这样做之后,catch 找不到任何测试用例:
catch main started..
Filters: [test]
===============================================================================
No tests ran
我尝试将运行程序代码放在驻留在静态库中的函数中,但这没有帮助。
问题:
- catch 究竟是如何找到它的测试用例的?
- 为什么会失败?
- 我该如何解决?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。