Xamarin Studio的代码覆盖率

时间:2015-08-20 12:53:44

标签: unit-testing xamarin code-coverage xamarin-studio

是否有可靠的工具可以帮助我们衡量单元测试的代码覆盖率?我主要从事Xamarin项目(在Xamarin工作室)。

为了没有得到-1的堆,我环顾四周但找不到足够成熟的东西可靠。我不要求该产品是免费的(但如果是的话,它当然会更好!)

2 个答案:

答案 0 :(得分:1)

Mono 4.x系列中有代码覆盖率分析器(自2015年4月7日提交以来)。

如果您进行移动测试,它对您没有帮助,但如果您在桌面平台上运行单元测试,则可以向Mono提供探查器选项:

--profile=log:coverage

coverage             enable collection of code coverage data
covfilter=ASSEMBLY   add an assembly to the code coverage filters
                     add a + to include the assembly or a - to exclude it
                     filter=-mscorlib
covfilter-file=FILE  use FILE to generate the list of assemblies to be filtered

在正常的“exe”处理中,您最终得到:

Coverage Summary:
    xCorFlags (/Users/administrator/monocov/lib/xCorFlags.exe) 26% covered (42 methods - 11 covered)
        <Module> ?% covered (0 methods - 1 covered)
        CorFlags.CorFlagsSettings 25% covered (4 methods - 1 covered)
        CorFlags.MainClass 50% covered (2 methods - 1 covered)
        CorFlags.CommandLineParser 40% covered (20 methods - 8 covered)

因此,将配置文件选项传递给基于cmd行的运行程序(nunit,xunit等等),您可以获得有关覆盖范围的概述。

对于详细的覆盖结果并完全集成到IDE(如VS),我在OS-X / Linux for C#上所知甚至没有接近Windows / .Net上可用的工具。 : - (

提交有关删除旧单声道的信息以及添加覆盖率分析器:

关于cov删除和日志覆盖过滤器添加的Git日志信息:

commit 16570265149730ec6a4760cc0fa34decc1a9d981
Author: Alex Rønne Petersen <alexrp@xamarin.com>
Date:   Tue Apr 7 14:51:27 2015 +0200
        [profiler] Remove old mono-cov profiler.
        We're replacing this with coverage support in the log profiler.

commit e91693fbb87f687a2fdb5a495c945c1872b3066c
Author: iain holmes <iain@xamarin.com>
Date:   Fri Feb 27 10:13:54 2015 +0000
        [cov] Install a coverage filter

答案 1 :(得分:0)

没有内置代码覆盖率工具,但幸运的是有许多工具可以帮助您:What can I use for good quality Code Coverage for C#/.NET?

我将OpenCover与ReportGenerator(https://github.com/danielpalme/ReportGenerator)一起使用,我真的很满意。

据我所知,无法在IDE中显示覆盖/未覆盖的行。