我有一系列 CruiseControl.NET 目标,如下所示。第一个项目从存储库中提取变更集,并对这些变更运行快速单元测试。如果这些单元测试成功,则构建完整的产品,如果成功,则在新编译的产品上运行一个大型测试套件。
<project name="pullAndRunUnitTests">
<triggers>
<intervalTrigger seconds="300"/>
</triggers>
<sourcecontrol repo="$(Repo)" type="hg" revertModifications="true"/>
<tasks>
<nant>
<targetList>
<target>unitTests</target>
</targetList>
</nant>
</tasks>
</project>
<project name="product">
<triggers>
<projectTrigger project="pullAndRunUnitTests"/>
</triggers>
<tasks>
<nant>
<targetList>
<target>all</target>
</targetList>
</nant>
</tasks>
</project>
<project name="regressionTests">
<triggers>
<projectTrigger project="product"/>
</triggers>
<tasks>
<nant>
<targetList>
<target>regressiontests</target>
</targetList>
</nant>
</tasks>
</project>
这种设置的问题在于,只有单元测试才能正确识别出谁破坏了构建;如果链中的成功项目中断,则很难确定谁/是什么真正使事情中断。
有没有办法让 CruiseControl.NET 项目显示自上次运行以来所做的更改,或者从触发它们的项目“继承更改”?