D语言中国主页  D语言编辑器SciTE4D   DWin库 D语言官方网站
D语言编译器1.x最新版 OpenSource   Tango   webnews  Wiki

查看完整版本: D语言检查测试代码覆盖率

yidabu 2007-4-28 18:44

D语言检查测试代码覆盖率

D语言检查测试代码覆盖率知识若不分享 实在没有意义 http://www.d-programming-language-china.org 20070428点击下面网址查看原文:http://www.d-programming-language-china.org        by:        qiezi        from:         http://qiezi.javaeye.com/blog/35513        测试写到什么程度算足够? 这个帖子对单元测试作了些探讨,代码覆盖率检查是检验单元测试的一项指标。        DMD编译器内建了代码覆盖率检查,根据上面这个帖子我们写一个测试:        代码        [Copy to clipboard] [ - ]CODE:                                int oddNumber(int index){                    switch (index){                    case 1: return 1;                    case 2: return 2;                    case 3: return 5;                    case 4: return 8;                    }                    throw new Exception("Unsupported operation");                }                                unittest{                    assert(oddNumber(1) == 1);                    assert(oddNumber(2) == 2);                    assert(oddNumber(4) == 8 );                }                                void main(){                }                编译:        代码        [Copy to clipboard] [ - ]CODE:                                dmd test.d -unittest -cov                -cov选项打开覆盖率检查,-unittest是unittest块的编译开关,空的main函数是必要的,它并不为单元测试自动生成启动函数。( 本文出处: http://www.d-programming-language-china.org )        执行:        代码        ./test        会生成test.lst文件,内容如下:        代码        [Copy to clipboard] [ - ]CODE:                                $ cat test.lst                        |int oddNumber(int index){                        3|    switch (index){                        2|    case 1: return 1;                        2|    case 2: return 2;                0000000|    case 3: return 5;                        2|    case 4: return 8;                        |    }                0000000|    throw new Exception("Unsupported operation");                        |}                        |                        |unittest{                        1|    assert(oddNumber(1) == 1);                        1|    assert(oddNumber(2) == 2);                        1|    assert(oddNumber(4) == 8 );                        |}                        |                        |void main(){                        |}                test.d is 77% covered                只需要grep一下"0000000|"即可找到没有测试到的地方,如果有好的IDE就方便了。( 本文出处: http://www.d-programming-language-china.org )        更详细的资料请看这里:        http://digitalmars.com/d/code_coverage.html( lastupdate:20070428 最新文章请访问http://www.d-programming-language-china.org )关于一大步成功社区:yidabu提倡在交流中学习,在分享中提高收集感兴趣的知识,写下心得,通过网络与别人一起分享理解一点就实践一步,收获什么就分享什么,成功就是这样一点点一步步累积起来的网络只是一个工具,只有自己身心提高才是实实在在的。d-programming-language-china.org为大家提供一个学习交流各种知识的平台
页: [1]
查看完整版本: D语言检查测试代码覆盖率