想使用CppUnit进行单元测试,但是发现不是Unicode的,于是搜索看看是否可以支持,果然有人提出了下面问题:
下面是转发的一段内容:
关于cppunit不支持unicode的解决 使用cppunit作单元测试,却发现cppunit并不支持unicode编码,怎么办 在编译时,选用了按unicode编码编译,但是在用的时候还是不行,出现以下错误: 1>e:\lxl\代码备份\qtexpert\qtexpt0920\mfcexpttest\parsestrsimpletestcase.cpp(4) : error C2664: “CppUnit::AutoRegisterSuite<TestCaseType>::AutoRegisterSuite(const std::string &)”: 不能将参数 1 从“std::wstring”转换为“const std::string &” 1> with 1> [ 1> TestCaseType=CParseStrSimpleTestCase 1> ] 1> 原因如下: 无法从“std::wstring”转换为“const std::string” 1> 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 错误出在: CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(CParseStrSimpleTestCase,CParseStrSimpleTestCase::getSuiteName()); 这一句上 如何能够编译unicode版本的cppunit呢,或者如果编译不了,有什么替代方案(除了换掉cppunit)? 补充一下:vc2005+cppunit1.12.1 ------解决方案-------------------- 让getSuiteName()返回string类型不行么? ------解决方案-------------------- “如果使用unicode的话必须使用相应版本的TestRunner和CPPUnit的LIB和DLL文件” 供参考 http://bbs.51testing.com/viewthread.php?tid=109075
探索一下,应该是需要把CPPUNIT的都先给编译为Unicode的对应版本才行。这个可行吗?也许需要明天试试吧。