Eclipse中的Boost testrunner无法生成有效的XML

时间:2017-03-14 19:34:13

标签: c++ eclipse boost-test

我试图在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 - >检查更新。这并没有改善我的情况。我怀疑其他信息可能对提供帮助很有价值,但我不确定要提供什么。我会观看评论,并在可能的情况下更新。

1 个答案:

答案 0 :(得分:0)

不情愿地,我升级到了Eclipse的Neon.2版本。如我的问题中所述,底层错误仍然存​​在,但是该版本中的解决方案也起作用。从问题中删除完整性:

  

作为一种解决方法,您可以在单元测试的运行配置中添加以下参数:

     

- output_format = XML --log_level = all --report_level = no -

     

Eclipse的测试运行器将它的参数附加到这些参数上。之后的参数将传递给您的测试脚本,并被Boost.Test忽略。

如果这在火星上工作也会很好,因为升级有点麻烦 - 尤其是支持多种开发语言 - 但至少我可以继续前进。在任何情况下,可能都必须在某些时候进行升级。