到目前为止,我发现的唯一方法是在 ccnet.config 文件中创建另一个项目,该文件依赖于第一个项目的输出......这就是我的意思。
只要开发人员签入任何代码,第一个项目就会正常构建。
第二个项目仅在指定时间(例如晚上 11 点)之后运行,并且只有在第一个项目显示成功构建时才会运行。
因此,我在半夜使用第二个项目在 Selenium 中进行 UI 测试,而不是让它们在白天运行并在开发人员需要时占用构建机器。
这是我为此所做的:在我的 ccnet.config 文件中,我的第二个项目的设置如下:
<triggers>
<multiTrigger operator="And">
<triggers>
<projectTrigger project="NameOfProject1" />
<scheduleTrigger time="23:00" buildCondition="ForceBuild">
<weekDays>
<weekDay>Monday</weekDay>
<weekDay>Tuesday</weekDay>
<weekDay>Wednesday</weekDay>
<weekDay>Thursday</weekDay>
<weekDay>Friday</weekDay>
<weekDay>Saturday</weekDay>
</weekDays>
</scheduleTrigger>
</triggers>
</multiTrigger>
</triggers>
另外,我的源代码控制部分有这个:
<sourcecontrol type="multi">
<sourceControls>
<svn>
<trunkUrl>http://<my-svn-url>:81/svn/<my-project-name>/branches/1.13</trunkUrl>
<workingDirectory>c:\ccnet\<my-system-name>\<my-project-name></workingDirectory>
<cleanCopy>false</cleanCopy>
</svn>
...
...
其中设置为 false,以便项目不会删除代码,而是使用已经存在的代码。
然后在我的任务再往下一点,我将一个标志传递给 NAnt,告诉它只为我的项目运行 UI 测试,因为 ccnet.config 文件中的第一个项目已经运行了构建过程通过但随后忽略 UI 测试。
这有帮助吗?如果这是您想要的方向,我可以进一步扩展。