在cruisecontrol.net中获取代码覆盖百分比c#

时间:2015-06-27 08:17:55

标签: c# .net visual-studio-2013 code-coverage cruisecontrol.net

我正在尝试在cruisecontrol.net中获取代码覆盖率。使用以下NANT脚本:

<target name="code_coverage" description="finds the code covered with tests">
  <exec program="${vstest_console}">
    <arg value="/Settings:CodeCoverage.runsettings" />
    <arg value="/EnableCodeCoverage" />
    <arg value="Tests.dll"/>
  </exec>
</target>

我能够获得.coverage文件。首先,.coverage文件的名称将作为用户名附加当前日期时间并在名为random的文件夹下。在.runsettings文件文档中,我无法找到有关更改.coverage文件名称的任何信息。我需要更改此文件的名称。更大的问题是创建了一个具有GUID类型名称的子文件夹,其中转储了覆盖文件,并且每次运行代码覆盖率为ON的测试时它都会更改。

其次,有人可以帮我提取覆盖的路径百分比。如果覆盖率低于某一点,我只需要使构建失败。很多帮助都可以在谷歌上获得,但是在VS 2010之前和之前都有。我需要VS 2012或VS 2013的帮助。目前正在使用VS 2013 Ultimate并使用.runsettings文件进行代码覆盖。

1 个答案:

答案 0 :(得分:0)

我仍然使用旧的mstest,但在testsettings文件中, 有/是一个控制输出文件夹位的选项:

  <NamingScheme baseName="cover_me" appendTimeStamp="false" useDefault="false" />

这是TestSettings根元素的子元素, 所以文件的开头看起来像这样:

<TestSettings name="CodeCoverage" id="f5644e34-f879-42fe-8b36-d1ca1cc7c3c5" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
  <Description>These are default test settings for a local test run.</Description>
  <NamingScheme baseName="cover_me" appendTimeStamp="false" useDefault="false" />

百分比 使用mstest我需要将二进制输出转换为xml 我在这里描述了这个过程: http://rubenwillems.blogspot.be/2011/09/setting-up-ccnet-in-combination-with.html 向下滚动一下覆盖部分。转换程序的来源也在那里,因为原始页面不再存在: - (

从那时起,它只运行一个xslt来检查它是否低于某个百分比。 这可以在转换器程序中,也可以作为额外的任务。