加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – VS2010的错误列表中不再显示Boost.Test错误消息

发布时间:2020-12-16 04:52:22 所属栏目:百科 来源:网络整理
导读:我正在为本机C项目使用Boost.Test Unit Test Framework.一切正常,但升级到Visual Studio 2010后我遇到了一个问题:在测试作为后期构建步骤运行后,错误列表中不再显示有关失败测试的消息.这是一个遗憾,因为Boost.Test与原生C项目的结合最接近(尽管仍然远远不
我正在为本机C项目使用Boost.Test Unit Test Framework.一切正常,但升级到Visual Studio 2010后我遇到了一个问题:在测试作为后期构建步骤运行后,错误列表中不再显示有关失败测试的消息.这是一个遗憾,因为Boost.Test与原生C项目的结合最接近(尽管仍然远远不够),以至于我习惯于单元测试管理项目.我正在使用Boost.Test here的作者推荐的配置.任何人都可以帮助这个小调但有点舒适减轻问题吗?

问候,

保罗

解决方法

用于编译器错误的Visual Studio 2005 Build输出如下所示:
|.ut_TEMPLATE.cpp(8) : error C2065: 'x' : undeclared identifier

而Visual Studio 2010编译器错误在输出窗口中如下所示:

|1>ut_TEMPLATE.cpp(8): error C2065: 'x' : undeclared identifier

(编辑:请参阅gbjbaanb关于> 1的评论.)

现在,交叉检查BOOST_ERROR输出的内容(如果你在后期构建步骤中有你的exe,你可以使用一个简单的printf来重现):

VS 2005:

|./ut_TEMPLATE.cpp(8): error in "test_TEST": check true == false failed [1 != 0]

VS 2010:

|1>  ut_TEMPLATE.cpp(10): error in "test_TEST": check true == false failed [true != false]

略有差异,但不是太多,并使用手动printf进一步测试:

printf("ut_TEMPLATE.cpp(00): error : in "test_TEST": check true == false failed [true != false]" "n");
                                  ^^^ .. Note colon here

我们还让VS 2010将此输出识别为错误:

BOOST_AUTO_TEST_CASE(test_TEST)
{
    printf("ut_TEMPLATE.cpp(00): error : in "test_TEST": check true == false failed [true != false]" "n");
    BOOST_CHECK_EQUAL( true,false);
}

1>------ Build started: Project: ut_TEMPLATE,Configuration: Release Win32 ------
1>  ut_TEMPLATE.cpp
1>  ut_TEMPLATE.vcxproj -> ....UnitTestsut_TEMPLATE......Releaseut_TEMPLATE.exe
1>  Running 1 test case...
1>ut_TEMPLATE.cpp : error : in "test_TEST": check true == false failed [true != false]
1>  ut_TEMPLATE.cpp(9): error in "test_TEST": check true == false failed [true != false]
1>C:ProgrammeMSBuildMicrosoft.Cppv4.0Microsoft.CppCommon.targets(113,5): error MSB3073: The command ""....ut_TEMPLATE.exe" --result_code=no --report_level=no
1>C:ProgrammeMSBuildMicrosoft.Cppv4.0Microsoft.CppCommon.targets(113,5): error MSB3073: :VCEnd" exited with code -1.
========== Build: 0 succeeded,1 failed,0 up-to-date,0 skipped ==========

所以看起来你/我们/ Boost.Test需要调整它的输出,以便VS2010 IDE仍能识别出错误信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读