【发布时间】:2017-03-14 19:34:13
【问题描述】:
我正在尝试从 Eclipse 对 C++ 代码运行单元测试。我的 Eclipse 是 Mars.2 Release (4.5.2)。我最初下载的是 Java Developer 的版本,但我已经安装了 C/C++ 插件。我编写了一个简单的类,然后为该类编写了一个 boost 单元测试。我可以在 Eclipse 和命令行中编译代码以获得可执行文件。如果我在命令行上运行可执行文件,我会得到这个输出
运行 1 个测试用例...
*** 未检测到错误
到目前为止一切顺利。
现在,如果我尝试在 Eclipse 中运行,我会收到错误消息。起初,我的测试似乎根本没有运行。在“C/C++ 单元”选项卡中,我在屏幕右侧看到一个红色条,没有我应该看到个别测试结果的信息,以及一条小文本消息“XML 解析错误:文件过早结束”选项卡行的正下方。通过停止调试器,我可以看到我是known bug 的受害者。基本上,Eclipse 和 boost testrunner 之间存在一些不兼容,其中一个是指定 XML,另一个是指定格式的 xml(不同大小写)。我尝试了在该链接的错误讨论中提到的解决方法:
作为一种解决方法,您可以在单元测试的运行配置中添加以下参数:
--output_format=XML --log_level=all --report_level=no --
Eclipse 的测试运行器将它的参数附加到这些。 -- 之后的参数被传递到您的测试脚本并被 Boost.Test 忽略。
有了这个,我仍然有问题,但问题会有所不同,具体取决于我是否使用调试运行。不调试,结果和上面提到的一样。通过调试,我在“C/C++ 单元”选项卡的左侧获得了有关我的测试的信息——注意到它运行并通过了——但我仍然看到指示失败的红色条。这种情况下的小文本说:“XML 解析错误:尾部部分不允许内容。”
上面提到的错误似乎已经有 2 年的历史了,尽管讨论最近在上个月有活动。我想还有一些其他的工作吗?社区似乎在这两年间一直在进行测试!
我尝试通过帮助更新 Eclipse -> 检查更新。这并没有改善我的情况。我怀疑其他信息可能对提供帮助很有价值,但我不确定该提供什么。我会看 cmets 并在可能的情况下更新。
【问题讨论】:
标签: c++ eclipse boost-test