【问题标题】:Use qDebug in unit testing Qt在 Qt 单元测试中使用 qDebug
【发布时间】:2011-10-21 02:15:40
【问题描述】:

我想在 Qt 单元测试中使用 qDebug,我已经编写了 qDebug 的代码,但它没有得到显示 我什至用过

ctest -R alkimia-alkinvoice -VV

但即使这样也只显示错误来自的位置。 但我需要使用 qDebug 来获取有关错误的更多信息

【问题讨论】:

  • 这是已知的 qDebug 的“功能”)你能提供一些代码吗?为什么不想使用标准输出流?
  • 你在Windows下运行吗?
  • 作为对未来读者的额外提示,如果使用-silent 命令行参数运行测试,qDebug 输出(和类似的)将被抑制

标签: unit-testing qt qdebug


【解决方案1】:

引用 qDebug() 的文档..

使用调试消息 msg 调用消息处理程序。如果没有消息 处理程序已安装,消息将打印到 stderr。 下 windows,消息发送到控制台,如果是控制台 应用;否则,它会被发送到调试器。 这个函数确实 如果在编译期间定义了 QT_NO_DEBUG_OUTPUT,则什么都没有。

我假设您在 Windows 下运行,如果不正确,请见谅。 Windows下qDebug()输出转换为Win32OutputDebugString()API调用。如果您在可以挂接到该 API 的调试器/IDE 下运行,那么您应该在该程序的一个窗口中看到调试输出。

如果您将CONFIG+=console 添加到您的 .pro 文件并从控制台重新构建/运行您的程序,您应该会看到调试输出。

【讨论】:

  • 感谢您的回复,但我正在使用 linux,我什至没有在 cmake 文件中使用 QT_NO_DEBUG_OUPUT
  • 好吧,那当然很奇怪。我会为在 windows 下遇到此问题的任何人留下答案。祝你好运!
  • 谢谢,我不知道我在哪里犯了错误,但现在一切正常......一定是一些愚蠢的错误......谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 2020-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多