问题标签 [catch2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何避免使用 CMake FetchContent 进行更新检查?
全部。
我决定使用新的 cmake 宏来下载外部依赖项。我从 Catch2 库的文档中获取了示例代码。
该解决方案效果很好,除了能够在我离线时重新启动 cmake(没有 wifi 和移动网络,只有我和我的笔记本电脑)。我收到以下错误:
是否可以一次下载依赖项,检查修订并且不要每次都尝试连接到远程服务器?
c++ - 无法在运行 Apple LLVM 版本 10.0.1 的 mac 上进行 catch2 hello 测试
我只是在尝试我的教程来尝试 catch2 单元测试库。我在 10.14 中使用 mac。我没有完整的 XCode,只有 cmd 工具和 macports 在我的设置中运行完美(没有 brew)。我按照建议使用合并的单个头文件和源文件。
然而,一个简单的教程:
给出了许多编译错误 - snip:
请建议,谢谢。
编辑:
在@Tiib 建议尝试g++ -std=c++17
编译和构建代码之后。g++ -std=c++11
也没有工作。不明白为什么。
c++ - 如何在 Azure DevOps CI/CD 管道的 Catch2 C++ 测试中启用故障转储?
我正在为 Windows 开发 C++ 软件产品。我使用 Catch2 框架为它编写了测试。它们在 Azure Dev Ops (ADO) 的 CI/CD 管道中实现自动化。当我的代码发生崩溃(例如未处理的异常)时,我想做的是在此 ADO 管道中自动创建并保存崩溃转储(.dmp 文件)。我在 Catch2 框架中看不到任何允许故障转储收集的内容。我在别处使用工具 procdump.exe 来创建故障转储,我想知道是否有办法通过我的 Catch2 测试运行此工具以在发生崩溃时获取转储。关于如何做到这一点或使用其他工具的任何提示都会有所帮助,谢谢!达伦
c++ - Catch2 可以和 C 语言一起使用吗?
我正在编写一个支持与 C 和 C++ 语言应用程序接口的 dll。dll 本身是用 C++ 编写的,所以问题是我可以使用 Catch2 框架对 C 和 C++ 应用程序进行单元测试吗?
我需要注意什么?有没有人可以建议的替代方案?
c++ - 如何最好地让我的 catch2 CHECK() 输出更多关于它检查的信息?
我正在使用 catch2 编写一些带有单元测试的代码(出于某种原因,它将保持这种状态)。
现在,在一组单元测试中,有很多(成对)行看起来像这样:
因此,my_out_param
使用单个函数调用进行设置,然后将其与 T 文字进行比较。
现在,当它运行并失败时,我得到:
但显然我没有得到“一些,参数,这里”。嗯,我需要它。否则,如果不阅读源代码,我真的不知道哪个测试失败了。
由于这里依赖于宏,我不能只包装CHECK()
一个函数并在里面做一些花哨的事情。
当检查失败时,您会建议我做什么以使“some, params, here”与“some_literal”一起打印,同时:
- 保持我的测试源代码简洁。
- 不重复自己
- 仍然获得有效的文件和行号
?
注意:当前使用的 catch2 版本是 2.7.0,合并为一个标头。如果版本更改会有所帮助,那可能是可行的。
catch2 - catch2:如何在测试用例中执行另一个进程?
我正在尝试在 catch2 中实现一个测试用例,用于测试进程之间 fifo 的使用。为了测试它,我想运行另一个创建并写入fifo的进程,而我的测试(使用catch2)将从这个fifo中读取。有没有办法使用 catch2 运行进程,或者我只是使用常规系统 API 来执行另一个 exe 文件(进程)作为测试的一部分?
谢谢
c++ - 如何迭代 Catch2 中编译时参数的所有排列?
我有一个函数,我想用Catch2测试每个可能的输入。这个函数有多个编译时常量作为它的参数。为简单起见,假设我有两个枚举
和功能
我想用 和 的值的每个可能组合进行A
测试B
。如何在 Catch2 中实现这一点?我希望这是可能的,而不必列出所有可能的排列。
到目前为止我尝试过的
没有做到这一点,因为我希望它们成为编译时常量,即我需要constexpr A a = GENERATE(...)
哪个不起作用。
使用TEMPLATE_TEST_CASE_SIG
会起作用:
但这需要我列出 A 和 B 的每个可能排列,这对于任何大于 2*2 值的示例都是不可维护的。
最小的工作示例
unit-testing - 如何让 catch2 打印比较的 C 风格字符串的内容?
我正在使用catch2(最新版本-截至目前为2.13.6),在我的测试用例中,我有一堆类似于以下内容的检查:
每个测试用例的文字都不同,显然my_str
's 的内容也是如此。
当这样的检查失败时,我得到的输出如下:
但我没有my_str
打印出来。让上面的内容也打印(部分)内容的最佳方法是my_str
什么?
笔记:
- 您可能不会假设
my_str
它是空终止的。 - 代码必须相对简洁。
- 我宁愿不将任何东西转换为
std::string
,但如果你必须这样做,我不排除它。
c++ - 如何使 catch2 不打印其烦人的标题?
我正在运行一些用 catch2 构建的单元测试。它的输出开始于:
好吧,我不想看到那个。-?
当我们使用适当的参数运行单元测试并知道我们在做什么时,我和其他用户/维护者都不需要被提醒 catch2 版本或运行的能力。
但是 --?
选项似乎没有告诉我如何禁用此消息。我可以吗?还是我必须手动“混蛋”catch2 标头?