`
darkjune
  • 浏览: 308631 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

cruiseControl.net 配置总结

阅读更多

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重启后就可以看到了

 

 

分享到:
评论

相关推荐

    CruiseControl.net

    总结来说,CruiseControl.net是一个强大的持续集成工具,通过自动化开发流程,提升了开发团队的工作效率和代码质量。理解和熟练掌握CruiseControl.net的配置和使用,对于任何软件开发团队都是至关重要的。

    CruiseControl.NET:用于.NET平台的自动化连续集成服务器-开源

    **CruiseControl.NET详解** ...总结来说,CruiseControl.NET是.NET开发中的重要工具,它简化了持续集成流程,提高了开发效率,促进了团队协作。通过合理的配置和使用,开发者可以充分利用其优势,提升项目管理水平。

    使用CruiseControl.Net进行持续集成

    总结起来,CruiseControl.Net为.NET开发者提供了一种强大而灵活的CI解决方案,通过自动化构建和测试过程,帮助团队提高开发效率,减少错误,确保软件的质量。正确配置和利用CruiseControl.Net,可以显著提升Asp.net...

    CruiseControl笔记

    ### CruiseControl.net 配置详解 #### 一、CruiseControl.net简介 CruiseControl.net是一种流行的持续集成(CI)工具,它可以帮助软件团队自动构建、测试和部署代码,从而提高开发效率和软件质量。本篇文章将围绕...

    持续集成之CruiseControl.rb

    它是由ThoughtWorks公司开发的,是CruiseControl.NET的Ruby版本,因此在Ruby社区中被广泛应用。CruiseControl.rb的核心理念是通过持续地集成代码来尽早发现并解决潜在的问题,从而提高软件质量。 ### 一、Cruise...

    CCNET的配置使用说明

    总结来说,CruiseControl.Net作为一款轻量级的持续化集成工具,对于采用敏捷开发的团队而言,是提高生产力和确保代码质量的重要助手。通过合理配置和使用,它可以有效地集成开发流程,促进团队协作,降低开发风险。

    Cruisecontrol

    项目采用Apache许可证发布,得到了ThoughtWorks公司的赞助和支持,并托管在SourceForge上(http://cruisecontrol.sourceforge.net)。CruiseControl的设计理念是“为扩展而设计”,这意味着它具有高度的灵活性和可...

    CruiseControl简介及使用举例

    总结来说,CruiseControl是一款强大的持续集成工具,能够帮助开发团队实现自动化构建、测试和部署,提高软件质量,减少手动操作带来的错误。通过配置和扩展,可以适应各种项目需求,是现代敏捷开发中不可或缺的辅助...

    CCNet 安装、部署、配置文档及过程

    CCNet,全称CruiseControl.NET,是一款开源的持续集成工具,主要用于自动化软件开发过程中的构建、测试和部署。它通过监控版本控制系统中的改动,自动触发构建流程,帮助团队及时发现并修复问题,提高软件质量与开发...

    CCNET配置文档

    CCNET,全称CruiseControl.NET,是一款开源的持续集成服务器,主要用于自动化软件开发过程中的构建、测试和部署任务。它的核心功能是监控源代码仓库的变更,并在检测到变化时自动触发构建流程。本篇文章将详细解析...

    Pragmatic Version Control With Subversion

    - **Mike Roberts**(CruiseControl.NET项目联合负责人)评论说:“作为一位长期使用Perforce和CVS的用户和管理员,我一直在寻找一本能够快速上手的Subversion书籍,这本书正是我所需要的。” #### 六、总结 ...

    AppFuse

    4. **测试环境准备就绪**,包含了Anthill和CruiseControl的配置文件,便于持续集成。 5. **数据库表CRUD操作**:提供了一种简单的方式来自动生成与数据库表相关的代码。 #### 四、使用指南 1. **开发环境设置**: ...

Global site tag (gtag.js) - Google Analytics