才从书上看到CruiseControl.Net,这就是我要的。日常工作中常做这个事,从svn下载源码,开Visual Studio,编译,运行测试。这个工具可以自动完成这一系列工作。还能生成报表,监视svn的改动等。

MSBuild在这个位置:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe

MSTest在这个位置:D:\Program Files\Microsoft Visual Studio 8\Common7\IDE\mstest.exe(视安装路径)

这两个工具是.net自带的,在msdn里有详细说明。

SVN,现在是1.5了。

主要还是CruiseControl.Net的配置。


一、下载CruiseControl.Net,我用的是zip版,解压到安装目录。内有4个文件夹:

cctray:托盘程序,监视当前服务的运行结果
examples:一些示例的配置文件
server:服务程序

webdashboard:web版的监视程序,可查看服务的状态,及历史运行结果。

监视用的是remote,数据用xml+xsl展示。


二、配置ccnet.config

我配置后的结果:

 1CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境<cruisecontrol>
 2CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境  <project>
 3CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境    <name>ccnetTest</name>
 4CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境    <sourcecontrol type="svn">
 5CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境      <trunkUrl>file:///E:/code/TESTccnet/svn/ccnetTest</trunkUrl>
 6CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境      <workingDirectory>E:\code\TESTccnet\workSpase\source</workingDirectory>
 7CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境    </sourcecontrol>
 8CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境    <tasks>
 9CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境      <msbuild>
10CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <executable>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe</executable>
11CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <workingDirectory>E:\code\TESTccnet\workSpase\source</workingDirectory>
12CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <projectFile>ccnetTest.sln</projectFile>
13CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <logger>F:\netTool\CruiseControl.NET\CruiseControl.NET-1.4.0.3535\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
14CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <targets>Build</targets>
15CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <timeout>900</timeout>
16CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs>
17CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境      </msbuild>
18CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境      <exec>
19CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <executable>delfile.bat</executable>
20CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <!--<baseDirectory>D:\dev\MyProject</baseDirectory>-->
21CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <buildArgs>E:\code\TESTccnet\workSpase\source\TestResults\mstest-results.xml</buildArgs>
22CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <buildTimeoutSeconds>300</buildTimeoutSeconds>
23CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <successExitCodes>-1,0</successExitCodes>
24CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境      </exec>
25CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境      <exec>
26CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <executable>D:\Program Files\Microsoft Visual Studio 8\Common7\IDE\mstest.exe</executable>
27CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <baseDirectory>E:\code\TESTccnet\workSpase\source</baseDirectory>
28CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <!--<baseDirectory>D:\dev\MyProject</baseDirectory>-->
29CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <buildArgs>/testcontainer:TestProject1\bin\Debug\TestProject1.dll /resultsfile:TestResults\mstest-results.xml</buildArgs>
30CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <buildTimeoutSeconds>300</buildTimeoutSeconds>
31CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <successExitCodes>0,1,3,5</successExitCodes>
32CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <!--<environment>
33CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境          <variable name="test.path" value="${CCNetWorkingDirectory}"/>
34CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        </environment>-->
35CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境      </exec>
36CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境      <merge>
37CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        <files>
38CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境          <file>E:\code\TESTccnet\workSpase\source\TestResults\mstest-results.xml</file>
39CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境        </files>
40CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境      </merge>
41CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境    </tasks>
42CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境    <publishers>
43CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境      <xmllogger />
44CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境    </publishers>
45CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境    <triggers>
46CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境      <!--buildCondition="ForceBuild"-->
47CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境      <intervalTrigger name="continuous" seconds="30" />
48CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境    </triggers>
49CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境  </project>
50CruiseControl.Net+SVN+MSBuild+MSTest的自动构建测试环境</cruisecontrol>

行2 project:CCNet可以监视多个项目,每个项目配置一份project;

行4 sourcecontrol:源码控制,这里用svn。还有其它十多种可以选择。配置好svn源,工作区。用远程时还需要用户密码。

行8 tasks:本项目要运行的任务

行42 publishers:默认这样子先

行45 triggers:触发条件。当前是30秒运行一次。当buildCondition="ForceBuild"时,每次编译,它的默认值是IfModificationExists,表示有代码改动时编译。


三、重点是task内的配置

msbuild节:

executable:程序位置

workingDirectory:工作位置

projectFile:项目文件

logger:编译信息的记录员

targets:msbuild的动作

buildArgs:编译参数

exec节:

exec可以运行任何命令行的程序。

这里用它来做文件删除,运行mstest。

merge节:

把mstest运行后的结果xml文件,合并到本次运行的结果文件中。这样在webdashboard中就可以看到mstest的结果了。

相关文章:

  • 2022-01-08
  • 2022-01-08
  • 2021-11-29
  • 2022-02-19
  • 2021-06-20
  • 2021-06-30
猜你喜欢
  • 2021-11-07
  • 2021-09-05
  • 2021-09-26
  • 2022-12-23
  • 2021-09-15
  • 2021-11-29
相关资源
相似解决方案