c++ - 如何从 Catch 记者中排除 printf 消息

标签 c++ linux cross-platform catch-unit-test

我正在测试一个监控 U 盘并允许监听插件/拔出事件的库。目标系统运行自定义 Linux 版本,调试在这个系统上很痛苦

所以,为了快速分析发生了什么,我经常使用 printf消息。

对于库的单元测试,我已经开始使用 Catch我使用 JUint 报告器生成测试报告。

问题:如果我插入 printf消息进行分析,它被添加到 xml Catch 生成的报告.

我的问题:有没有办法分开printf Catch 生成的消息和报告?

谢谢。

更新:我想避免写入文件,因为当出现错误并且程序在文件完全写入之前崩溃时我遇到了问题。

最佳答案

还有另一种方式。

您可以像这样使用 fprintf 将调试消息打印到 stderr 而不是 stdout:

fprintf(stderr, "%d\n", c);

由于 Catch 的报告被写入 stdout,因此您可以使用重定向来关闭您的输出,例如在 Linux 系统上:

./a.out -r junit 2> /dev/null

关于c++ - 如何从 Catch 记者中排除 printf 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46490302/

相关文章:

c++ - 监听来自 C++ Q_OBJECT 的附加 Component.onCompleted 和 Component.onDestroyed 信号

c++ - 如何让 C++ 从 USB 端口(如串行端口)执行 I/O

c# - Xamarin.Forms 是否适合用于大量使用 f.ex TTS、OCR、语音等的应用程序?

c++ - 错误的 `-Wsign-conversion` ARM 上的 `ntohs(...)` 错误?

python - numpy.save 是跨平台的吗?

c++ - Vector 下标添加元素失败

c++ - 阻止 QPushButton 缩进

即使 PATH 变量中列出了 Linux shell 命令的路径,也未找到这些命令

php - xDebug 没有在断点处停止

regex - 需要使用grep在文件中查找字符串