Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 如何将std::cout与eclipsecdt';什么是单元测试支持?_Unit Testing_Eclipse Cdt - Fatal编程技术网

Unit testing 如何将std::cout与eclipsecdt';什么是单元测试支持?

Unit testing 如何将std::cout与eclipsecdt';什么是单元测试支持?,unit-testing,eclipse-cdt,Unit Testing,Eclipse Cdt,如果我在Eclipse CDT的简单单元测试中使用std::cout,我会得到错误消息: “XML分析错误:prolog中不允许包含内容。” 但是,如果我删除带有“cout”消息的行,那么测试将正确运行。我打印到终端的调试消息似乎干扰了单元测试输出,因此Eclipse中的“C/C++单元测试”窗口无法解析单元测试输出 我的问题是,如果我的代码包含一些cout调试消息,那么如何在Eclipse的CDT中使用单元测试支持?单元测试输出是否可以发送到其他位置(如临时文件),以便与打印到终端的cout/

如果我在Eclipse CDT的简单单元测试中使用std::cout,我会得到错误消息: “XML分析错误:prolog中不允许包含内容。”

但是,如果我删除带有“cout”消息的行,那么测试将正确运行。我打印到终端的调试消息似乎干扰了单元测试输出,因此Eclipse中的“C/C++单元测试”窗口无法解析单元测试输出

我的问题是,如果我的代码包含一些cout调试消息,那么如何在Eclipse的CDT中使用单元测试支持?单元测试输出是否可以发送到其他位置(如临时文件),以便与打印到终端的cout/debug/log消息分离

编辑: 例如,如果我在中使用示例25:

#定义BOOST_测试_模块示例
#包括
#包括
//____________________________________________________________________________//
结构MyConfig{

MyConfig(){std::coutEclipse CDT和Boost.Test之间的通信是通过std::cout实现的,因此您的代码不应该在那里输出任何其他内容。您应该使用Boost_消息或打印到std::cerr


不幸的是,这是Boost.Test的一个限制,应该扩展它以实现您想要的功能。

Eclipse CDT和Boost.Test之间的通信是通过std::cout实现的,因此您的代码不应该在那里输出任何其他内容。您应该使用Boost_消息或打印到std::cerr


不幸的是,这是Boost.Test的一个限制,应该扩展它以实现您想要的功能。

我克服了XML解析错误干扰测试运行的类似问题,方法是使用单元测试构建的CDATA标记有条件地将输出包装到std::cout:

#if defined(WRAP_XML_CDATA)
  output << "<![CDATA[";
#endif
#如果已定义(包装XML\U CDATA)
输出

#如果已定义(包装XML\U CDATA)

outputI通过使用单元测试构建的CDATA标记有条件地将输出包装到std::cout,克服了XML解析错误干扰测试运行的类似问题:

#if defined(WRAP_XML_CDATA)
  output << "<![CDATA[";
#endif
#如果已定义(包装XML\U CDATA)
输出

#如果已定义(包装XML\U CDATA)
输出