现在的位置: 首页 > 综合 > 正文

CruiseControl.NET配置总结

2013年05月03日 ⁄ 综合 ⁄ 共 3867字 ⁄ 字号 评论关闭

CruiseControl做的确实不错, 大部分功能只要配置一下两个配置文件就可以了, 一个是 ccnet.config ,一个是dashboard.config,如果要设置服务器发送构建邮件的话,还要用到一个文件ccnet.exe.config,这里我都是缺省用ccnet.exe启动的服务器,所以服务器配置要用那个ccnet.exe.config配置.

               NUnit配置段

CruiseControl.net与nunit集成有几个要点:

在ccnet.config的task任务中添加以下任务

      <nunit path="C:\Program Files\NUnit 2.4.3\bin\nunit-console.exe"  >
        <assemblies>
          <assembly>C:\workspace\test1\DotNet\Tests\bin\Debug\Tests.dll</assembly>
        </assemblies>
      </nunit>

             msbuild配置段

我在task的构建用的是msbuild,如果工程很简单的话可以直接用vs自带的构建方法,如下

      <devenv>
        <solutionfile>C:\workspace\test1\DotNet\Exist.sln</solutionfile>
        <configuration>Debug</configuration>
        <buildtype>Build</buildtype>
        <executable>C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv.com</executable>
      </devenv>

而总得msbuild应该是像以下的样子:

  <msbuild>
        <executable>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe</executable>
        <workingDirectory>C:\workspace\test1\DotNet</workingDirectory>
        <projectFile>Projectsln</projectFile>
        <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs>
        <targets ></targets>
        <timeout>15</timeout>
        <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
  </msbuild>

这样msbuild就会编译整个solution.

       NCover集成

需要集成NCover,需要先在要集成的工程文件如test.csproj文件上加一个头,让build任务能调用NCover,

  <UsingTask TaskName="NCoverExplorer.MSBuildTasks.NCoverExplorer"
  AssemblyFile="C:\Program Files\NCover\Build Task Plugins\NCoverExplorer.MSBuildTasks.dll"/>
<UsingTask TaskName="NCoverExplorer.MSBuildTasks.NCover"
  AssemblyFile="C:\Program Files\NCover\Build Task Plugins\NCoverExplorer.MSBuildTasks.dll"/>
<UsingTask TaskName="NCoverExplorer.MSBuildTasks.NUnitProject"
  AssemblyFile="C:\Program Files\NCover\Build Task Plugins\NCoverExplorer.MSBuildTasks.dll"/>

然后在此工程文件中加入NCover的msbuild的task:

  <Target Name="Coverage">
      <NCover ToolPath="C:\Program Files\NCover"
     WorkingDirectory="$(MSBuildProjectDirectory)\bin\Debug"
    CommandLineExe="nunit-console.exe"
    CommandLineArgs="Tests.dll"
    LogFile="Coverage.log"
    CoverageFile="Coverage.xml"
    ContinueOnError="true"
  />
  </Target>
    <ItemGroup>
        <MySourceFiles Include="CoverageReport.xsl"/>
    </ItemGroup> 
 <Target Name="CreateReport">
     <NCoverExplorer
    ToolPath="C:\Program Files\NCover"
    ProjectName="$(MSBuildProjectDirectory)\bin\debug"
    OutputDir="$(MSBuildProjectDirectory)"
    ReportType="ModuleClassSummary"
    XmlReportName="CoverageSummary.xml"
    CoverageFiles="Coverage.xml" />
    <Copy
            SourceFiles="@(MySourceFiles)"
            DestinationFolder="C:\Program Files\CruiseControl.NET\server\xsl"
    />
</Target>

NCover会先生成一个Coverage.xml的报告文件,然后会根据这个文件生成CoverageSummary.xml,并且会有一个套用格式的CoverageReport.xsl.

生成了报告后,需要在ccnet.config中的publishers中的merge任务将报表merge到CruiseControl的log文件中:

    <merge>
        <files>
            <file>C:\workspace\test1\DotNet\Tests\CoverageSummary.xml</file>
         </files>  
    </merge>

并且想要在webdashborad中显示这个coverage的报告的时候,需要在dashborad.config中加入build出来的xsl文件:

   <buildReportBuildPlugin>
    <xslFileNames> 
<xslFile>xsl\CoverageReport.xsl</xslFile> </xslFileNames></buildReportBuildPlugin>

然后还需要加入这段:

<xslReportBuildPlugin description="CoverageReport" actionName="NCoverBuildReport" xslFileName="xsl\CoverageReport.xsl" />

 

还有一点 :

   <buildReportBuildPlugin>
    <xslFileNames>
     <xslFile>xsl\header.xsl</xslFile>
     <xslFile>xsl\modifications.xsl</xslFile>
     <xslFile>xsl\compile.xsl</xslFile>
     <xslFile>xsl\compile-msbuild.xsl</xslFile>
     <xslFile>xsl\MsTestSummary.xsl</xslFile>
     <xslFile>xsl\unittests.xsl</xslFile>
     <xslFile>xsl\tests.xsl</xslFile>
     <xslFile>xsl\CoverageReport.xsl</xslFile>
     <xslFile>xsl\SimianSummary.xsl</xslFile>
     <xslFile>xsl\fitnesse.xsl</xslFile>
    </xslFileNames>
   </buildReportBuildPlugin>

上面的就是在webdashboard中左边导航菜单的内容,可以根据需要进行配置,配置好后IIS要重启,不然看不到最新的配置内容,在dos窗口下用命令iisreset重启后就可以看到了

抱歉!评论已关闭.