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为.NET开发者提供了一种强大而灵活的CI解决方案,通过自动化构建和测试过程,帮助团队提高开发效率,减少错误,确保软件的质量。正确配置和利用CruiseControl.Net,可以显著提升Asp.net...
### CruiseControl.net 配置详解 #### 一、CruiseControl.net简介 CruiseControl.net是一种流行的持续集成(CI)工具,它可以帮助软件团队自动构建、测试和部署代码,从而提高开发效率和软件质量。本篇文章将围绕...
它是由ThoughtWorks公司开发的,是CruiseControl.NET的Ruby版本,因此在Ruby社区中被广泛应用。CruiseControl.rb的核心理念是通过持续地集成代码来尽早发现并解决潜在的问题,从而提高软件质量。 ### 一、Cruise...
总结来说,CruiseControl.Net作为一款轻量级的持续化集成工具,对于采用敏捷开发的团队而言,是提高生产力和确保代码质量的重要助手。通过合理配置和使用,它可以有效地集成开发流程,促进团队协作,降低开发风险。
项目采用Apache许可证发布,得到了ThoughtWorks公司的赞助和支持,并托管在SourceForge上(http://cruisecontrol.sourceforge.net)。CruiseControl的设计理念是“为扩展而设计”,这意味着它具有高度的灵活性和可...
总结来说,CruiseControl是一款强大的持续集成工具,能够帮助开发团队实现自动化构建、测试和部署,提高软件质量,减少手动操作带来的错误。通过配置和扩展,可以适应各种项目需求,是现代敏捷开发中不可或缺的辅助...
CCNet,全称CruiseControl.NET,是一款开源的持续集成工具,主要用于自动化软件开发过程中的构建、测试和部署。它通过监控版本控制系统中的改动,自动触发构建流程,帮助团队及时发现并修复问题,提高软件质量与开发...
CCNET,全称CruiseControl.NET,是一款开源的持续集成服务器,主要用于自动化软件开发过程中的构建、测试和部署任务。它的核心功能是监控源代码仓库的变更,并在检测到变化时自动触发构建流程。本篇文章将详细解析...
- **Mike Roberts**(CruiseControl.NET项目联合负责人)评论说:“作为一位长期使用Perforce和CVS的用户和管理员,我一直在寻找一本能够快速上手的Subversion书籍,这本书正是我所需要的。” #### 六、总结 ...
4. **测试环境准备就绪**,包含了Anthill和CruiseControl的配置文件,便于持续集成。 5. **数据库表CRUD操作**:提供了一种简单的方式来自动生成与数据库表相关的代码。 #### 四、使用指南 1. **开发环境设置**: ...