【问题标题】:Sonar, Sonar-runner, Gallio and NCover ... Gallio doesn't run :(Sonar、Sonar-runner、Gallio 和 NCover ... Gallio 不运行 :(
【发布时间】:2012-05-17 20:29:58
【问题描述】:

有没有人真正设法让 sonar-runner 与 Gallio 和 Ncover 合作?我已经尝试了书中的所有组合,并且在运行过程中它一直告诉我

“INFO s.p.c.g.GallioSensor - Gallio 不会执行,因为没有测试项目。”

如果我单独运行所有内容(NCover、Gallio),它们会给出结果,而不是使用 Sonar-runner

请帮忙!!!

顺便说一句,这就是我的配置(sonar-project.properties 文件)

# Project identification
sonar.projectKey=DMG:PilotCompletePackageSolution
sonar.projectVersion=4.0.0  
sonar.projectName=Pilot Filepointer

# Info required for Sonar  
sources=.  
sonar.language=cs  

#Core C# Settings  
sonar.dotnet.visualstudio.solution.file=FilePointer.sln  

#Gendarme  
sonar.gendarme.assemblies=\build\\DmgTech*.*  
sonar.gendarme.mode= 

# Gallio  
sonar.gallio.mode=
sonar.gallio.reports.path=bin/
sonar.gallio.installDirectory=C:/program files (x86)/gallio
sonar.gallio.coverage.tool=NCover
sonar.donet.visualstudio.testProjectPattern=*test*
sonar.donet.visualstudio.testProjectPattern=*Test*
sonar.donet.visualstudio.testProjectPattern=*Tests
sonar.donet.visualstudio.testProjectPattern=*UnitTest*  
sonar.NCover.installDirectory=c:/Program Files(x86)/NCover

# FXCop  
sonar.fxcop.mode=  

#StyleCop  
sonar.stylecop.mode=

#NDeps
sonar.ndeps.mode=

更新

这是声纳创建的覆盖范围:

<?xml version="1.0" encoding="utf-8"?>
<!-- saved from NCover 3.0 Export url='http://www.ncover.com/' -->
<coverage profilerVersion="3.4.18.6937" driverVersion="3.4.18.6937" exportversion="3" viewdisplayname="" startTime="2012-05-11T08:07:34.8625409Z" measureTime="2012-05-11T08:07:40.7988805Z" projectName="New Project" buildid="734ad123-bd97-46c4-acfe-2ad0386b4d6a" coveragenodeid="0" failed="false" satisfactorybranchthreshold="95" satisfactorycoveragethreshold="95" satisfactorycyclomaticcomplexitythreshold="20" satisfactoryfunctionthreshold="80" satisfactoryunvisitedsequencepoints="10" uiviewtype="TreeView" viewguid="New Project" viewfilterstyle="None" viewreportstyle="SequencePointCoveragePercentage" viewsortstyle="Name">
  <rebasedpaths />
  <filters />
  <documents>
    <doc id="0" excluded="false" url="None" cs="" csa="00000000-0000-0000-0000-000000000000" om="0" nid="0" />
  </documents>
</coverage>

这是手动覆盖:

<?xml version="1.0" encoding="utf-8"?>
<!-- saved from NCover 3.0 Export url='http://www.ncover.com/' -->
<coverage profilerVersion="3.4.18.6937" driverVersion="3.4.18.6937" exportversion="3" viewdisplayname="" startTime="2012-05-10T06:06:29.2440585Z" measureTime="2012-05-10T06:06:31.6464627Z" projectName="New Project" buildid="2c2073a0-18a6-4976-8858-c16755d1d1ff" coveragenodeid="0" failed="false" satisfactorybranchthreshold="95" satisfactorycoveragethreshold="95" satisfactorycyclomaticcomplexitythreshold="20" satisfactoryfunctionthreshold="80" satisfactoryunvisitedsequencepoints="10" uiviewtype="TreeView" viewguid="New Project" viewfilterstyle="None" viewreportstyle="SequencePointCoveragePercentage" viewsortstyle="Name">
  <rebasedpaths />
  <filters />
  <documents>
    <doc id="1" excluded="false" url="C:\tfsdata\FilePointer\UITest\UnitTest.cs" cs="81FA01B2B109478673AC792E586754E5" csa="406ea660-64cf-4c82-b6f0-42d48172a799" om="1" nid="0" />
    <doc id="0" excluded="false" url="None" cs="" csa="00000000-0000-0000-0000-000000000000" om="0" nid="0" />
  </documents>
  <module moduleId="1" name="C:\tfsdata\FilePointer\bin\UITest.dll" assembly="UITest" assemblyIdentity="UITest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, processorArchitecture=x86" nid="0">
    <class name="UITest.UnitTest" signature="UITest.UnitTest" excluded="false" nid="0">
      <method name=".ctor" signature=".ctor() : void" excluded="false" instrumented="true" cc="1" vc="1" nid="0">
        <seqpnt vc="1" o="0" l="16" el="16" c="9" ec="26" ex="false" fl="65536" doc="1" nid="0" />
        <seqpnt vc="1" o="8" l="21" el="21" c="9" ec="10" ex="false" fl="65536" doc="1" nid="0" />
        <seqpnt vc="1" o="9" l="0" el="0" c="0" ec="0" ex="false" fl="131072" doc="1" nid="0" />
      </method>
      <method name="get_TestContext" signature="get_TestContext() : Microsoft.VisualStudio.TestTools.UnitTesting.TestContext" excluded="false" instrumented="false" cc="1" vc="0" nid="0">
        <seqpnt vc="0" o="1" l="33" el="33" c="17" ec="44" ex="false" fl="65536" doc="1" nid="0" />
        <seqpnt vc="0" o="A" l="34" el="34" c="13" ec="14" ex="false" fl="65536" doc="1" nid="0" />
        <seqpnt vc="0" o="B" l="0" el="0" c="0" ec="0" ex="false" fl="131072" doc="1" nid="0" />
      </method>
      <method name="set_TestContext" signature="set_TestContext(Microsoft.VisualStudio.TestTools.UnitTesting.TestContext value) : void" excluded="false" instrumented="false" cc="1" vc="0" nid="0">
        <seqpnt vc="0" o="1" l="37" el="37" c="17" ec="45" ex="false" fl="65536" doc="1" nid="0" />
        <seqpnt vc="0" o="8" l="0" el="0" c="0" ec="0" ex="false" fl="131072" doc="1" nid="0" />
        <seqpnt vc="0" o="8" l="38" el="38" c="13" ec="14" ex="false" fl="65536" doc="1" nid="0" />
      </method>
      <method name="TestMethod1" signature="TestMethod1() : void" excluded="false" instrumented="true" cc="1" vc="1" nid="0">
        <seqpnt vc="1" o="1" l="0" el="0" c="0" ec="0" ex="false" fl="131072" doc="1" nid="0" />
        <seqpnt vc="1" o="1" l="69" el="69" c="9" ec="10" ex="false" fl="65536" doc="1" nid="0" />
      </method>
    </class>
  </module>
</coverage>

【问题讨论】:

    标签: code-coverage sonarqube gallio ncover static-code-analysis


    【解决方案1】:

    Sonar 与 Gallio + NCover 配合得很好,您只需要清理您的 sonar-project.properties 文件,因为某些参数设置不正确(请参阅http://docs.codehaus.org/display/SONAR/sonar-csharp-gallio-plugin

    • 您应该只有 1 个“sonar.donet.visualstudio.testProjectPattern”属性(应该类似于“sonar.donet.visualstudio.testProjectPattern=Test”)。该插件不支持多个。
    • “sonar.gendarme.assemblies”的值在我看来很奇怪:您现在应该删除它

    【讨论】:

    • 当从 sonar-runner 中运行时,Gallio 会寻找什么样的文件?是 VS 项目文件还是 .cs 文件对吧?
    • 两者都用于确定 C# 插件必须做什么。
    • 好的,已经更彻底地添加了模式,一行并具有模式 est ,这似乎有效,所以现在更近了一步。但是......现在coverage.xml文件是空的:-(......很奇怪,因为当通过gui运行所有东西时,它会被很好地创建。有什么提示吗?顺便说一句,任何好的文档都在那里描述所有元素协同工作?
    • 如果您觉得不够好,您可以将文档回馈给项目,这是一个开源项目。关于覆盖文件为空的事实,这可能意味着测试尚未成功执行,是吗?
    • 他们已成功执行(如此说明运行和声纳仪表板)
    猜你喜欢
    • 1970-01-01
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 2015-06-03
    • 2016-09-16
    相关资源
    最近更新 更多