Eclipse 中的 Boost testrunner 无法生成有效的 XML
Boost testrunner in Eclipse fails to generate valid XML
我正在尝试 运行 从 Eclipse 对 C++ 代码进行单元测试。我的 Eclipse 是 Mars.2 Release (4.5.2)。我最初下载的是 Java 开发者版,但我安装了 C/C++ 插件。我写了一个简单的 class,然后为那个 class 写了一个提升单元测试。我可以在 Eclipse 和命令行中编译代码以获得可执行文件。如果我 运行 命令行上的可执行文件,我得到这个输出
Running 1 test case...
*** No errors detected
到目前为止一切顺利。
现在,如果我尝试在 Eclipse 中 运行,我会收到错误消息。起初我的测试似乎根本不是 运行ning。在 "C/C++ Unit" 选项卡中,我在屏幕右侧看到了一个红色条,没有我应该在哪里看到单个测试结果的信息,并且选项卡行正下方的小文本消息 "XML parse error: Premature end of file" .通过在调试器中停止,我能够看到我是 known bug 的受害者。基本上,Eclipse 和 boost test运行ner 之间存在一些不兼容性,其中一个指定格式 XML,另一个指定 xml(不同的大小写)。我尝试了 link:
中关于该错误的讨论中提到的解决方法
As a workaround you can add following arguments in the unittests' run configuration:
--output_format=XML --log_level=all --report_level=no --
Eclipse's test runner appends it's arguments to these. Arguments after -- are passed on to your test script and ignored by Boost.Test.
有了这个,我仍然有问题,但问题是不同的,这取决于我 运行 是否进行调试。没有调试,结果与上面提到的相同。通过调试,我在 "C/C++ Unit" 选项卡的左侧获得了有关我的测试的信息 - 注意到它 运行 并通过了 - 但我仍然得到指示失败的红色条。本例中的小文本表示:"XML parse error: Content is not allowed in tailing section."
上面提到的错误似乎已有 2 年历史,尽管讨论 activity 最近是在上个月。我想还有其他一些解决方法吗?看来社区在其间的两年里一直在 运行 进行测试!
我尝试通过“帮助”->“检查更新”来更新 Eclipse。那并没有改善我的处境。我怀疑其他信息可能对帮助有价值,但我不确定要提供什么。如果可以的话,我会看评论并更新。
无奈,升级到Eclipse的Neon.2版本。正如我的问题中所述,底层错误仍然存在,但该版本中提到的解决方法有效。为了完整性从问题中复制下来:
As a workaround you can add following arguments in the unittests' run configuration:
--output_format=XML --log_level=all --report_level=no --
Eclipse's test runner appends it's arguments to these. Arguments after -- are passed on to your test script and ignored by Boost.Test.
如果这在火星上也能正常工作就好了,因为升级有点麻烦——尤其是在支持多种开发语言的情况下——但至少我可以继续前进。在任何情况下都可能不得不在某个时候升级。
我正在尝试 运行 从 Eclipse 对 C++ 代码进行单元测试。我的 Eclipse 是 Mars.2 Release (4.5.2)。我最初下载的是 Java 开发者版,但我安装了 C/C++ 插件。我写了一个简单的 class,然后为那个 class 写了一个提升单元测试。我可以在 Eclipse 和命令行中编译代码以获得可执行文件。如果我 运行 命令行上的可执行文件,我得到这个输出
Running 1 test case...
*** No errors detected
到目前为止一切顺利。
现在,如果我尝试在 Eclipse 中 运行,我会收到错误消息。起初我的测试似乎根本不是 运行ning。在 "C/C++ Unit" 选项卡中,我在屏幕右侧看到了一个红色条,没有我应该在哪里看到单个测试结果的信息,并且选项卡行正下方的小文本消息 "XML parse error: Premature end of file" .通过在调试器中停止,我能够看到我是 known bug 的受害者。基本上,Eclipse 和 boost test运行ner 之间存在一些不兼容性,其中一个指定格式 XML,另一个指定 xml(不同的大小写)。我尝试了 link:
中关于该错误的讨论中提到的解决方法As a workaround you can add following arguments in the unittests' run configuration:
--output_format=XML --log_level=all --report_level=no --
Eclipse's test runner appends it's arguments to these. Arguments after -- are passed on to your test script and ignored by Boost.Test.
有了这个,我仍然有问题,但问题是不同的,这取决于我 运行 是否进行调试。没有调试,结果与上面提到的相同。通过调试,我在 "C/C++ Unit" 选项卡的左侧获得了有关我的测试的信息 - 注意到它 运行 并通过了 - 但我仍然得到指示失败的红色条。本例中的小文本表示:"XML parse error: Content is not allowed in tailing section."
上面提到的错误似乎已有 2 年历史,尽管讨论 activity 最近是在上个月。我想还有其他一些解决方法吗?看来社区在其间的两年里一直在 运行 进行测试!
我尝试通过“帮助”->“检查更新”来更新 Eclipse。那并没有改善我的处境。我怀疑其他信息可能对帮助有价值,但我不确定要提供什么。如果可以的话,我会看评论并更新。
无奈,升级到Eclipse的Neon.2版本。正如我的问题中所述,底层错误仍然存在,但该版本中提到的解决方法有效。为了完整性从问题中复制下来:
As a workaround you can add following arguments in the unittests' run configuration:
--output_format=XML --log_level=all --report_level=no --
Eclipse's test runner appends it's arguments to these. Arguments after -- are passed on to your test script and ignored by Boost.Test.
如果这在火星上也能正常工作就好了,因为升级有点麻烦——尤其是在支持多种开发语言的情况下——但至少我可以继续前进。在任何情况下都可能不得不在某个时候升级。