【问题标题】:How to prevent eclipse c/c++ unit testing from encountering XML parse error which leads to runner hanging?如何防止 eclipse c/c++ 单元测试遇到导致运行器挂起的 XML 解析错误?
【发布时间】:2014-11-13 07:33:12
【问题描述】:

简单地说:

当我使用 boost runner 执行测试时,出现以下错误并且 c/c++ 单元测试挂起。

XML parse error: The entity name must immediately follow the '' in the entity reference.

如何避免这种情况发生?

仅供参考: 测试运行器在 eclipse 之外的命令行或 eclipse 的调试窗口中运行得非常好,因此它必须是在“c/c++ 单元控制台”中隔离的 eclipse 问题。

我正在运行开普勒。

谢谢。

【问题讨论】:

  • 您应该... 可能包含有问题的 XML 文件。通过验证器运行它 (xmllint?)
  • 我在构建目录或 Eclipse 工作区目录中看不到 xml 文件。该 xml 文件将位于何处?
  • 我会寻找(隐藏的?)文件,例如.project,开始
  • 我检查并抓取了 .project 文件,但里面什么都没有。
  • 好吧。我们不是飞行支援小队,我们的超能力相当不包括远程计算机访问。如果您找不到错误的原因,也许它是一个重新开始的想法。使用源代码控制,并在问题再次出现时检查更改。

标签: c++ eclipse unit-testing boost eclipse-cdt


【解决方案1】:

如果您将BOOST_CHECK 放在测试存根中,并且测试代码是多线程的,则异步<Info> 输出可能会破坏XML 输出。仔细检查 XML 输出,找出有问题的测试。

至少到 1.57,虽然验证存根的使用对于单元测试模块也很重要,但 Boost.Test 在这种情况下不被认为是线程安全的。

您可以通过redirecting the output stream 和重载boost::unit_test::unit_test_log.set_stream 来解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-26
    • 2014-11-10
    • 2021-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多