如果我在 Eclipse CDT 的简单单元测试中使用 std::cout,我会收到错误消息:“XML 解析错误:prolog 中不允许内容。”
但是,如果我删除带有“cout”消息的行,那么测试会正确运行。我打印到终端的调试消息似乎干扰了单元测试输出,因此 Eclipse 中的“C/C++ 单元测试”窗口无法解析单元测试输出。
我的问题是,如果我的代码包含一些 cout 调试消息,如何在 Eclipse 的 CDT 中使用单元测试支持?单元测试输出是否可以发送到不同的位置(如临时文件),以便与打印到终端的 cout/debug/log 消息分开?
编辑:例如,如果我使用http://www.boost.org/doc/libs/1_42_0/libs/test/doc/html/utf/user-guide/fixture/global.html中的示例 25 :
#define BOOST_TEST_MODULE example
#include <boost/test/included/unit_test.hpp>
#include <iostream>
//____________________________________________________________________________//
struct MyConfig {
MyConfig() { std::cout << "global setup\n"; }
~MyConfig() { std::cout << "global teardown\n"; }
};
//____________________________________________________________________________//
BOOST_GLOBAL_FIXTURE( MyConfig );
BOOST_AUTO_TEST_CASE( test_case )
{
BOOST_CHECK( true );
}
//____________________________________________________________________________//
然后我收到错误“XML 解析错误:prolog 中不允许内容”。在日食中。这似乎是由于 Eclipse 单元测试工具无法解析包含“全局设置”的输出。所以问题是:如何在让 Eclipse 的单元测试工具解析消息并显示单元测试结果的同时继续使用这个打印调试消息的示例?