2012-10-25 52 views
1

我有一個CruiseControl.NET目標鏈,如下所示。第一個項目從存儲庫中提取變更集,並對這些變更運行快速單元測試。如果這些單元測試成功完成,則完整產品將生成,如果成功,則會在新編譯的產品上運行大型測試套件。使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項目顯示自上次運行後發生了哪些更改,或者從觸發它們的項目中「繼承更改」?

回答

1

有可能讓依賴CCNET項目 「繼承」 的變化:

  1. 添加Modification Writer Task項目pullAndRunUnitTests
  2. 添加Modification Reader Task項目product

執行相同的product - regressionTests依賴關係:

  1. 修改作家任務項目product
  2. 修改讀取器任務項目regressionTests

像這樣:

<project name="pullAndRunUnitTests"> 
    ... 
    <tasks> 
     <modificationWriter> 
      <filename>changes-product.xml</filename> 
      <path>..</path> 
      <appendTimeStamp>True</appendTimeStamp> 
     </modificationWriter> 
     <nant>...</nant> 
    </tasks> 
</project> 
<project name="product"> 
    ... 
    <tasks> 
     <modificationReader> 
      <filename>changes-product.xml</filename> 
      <path>..</path> 
      <deleteAfterRead>True</deleteAfterRead> 
     </modificationReader> 
     <modificationWriter> 
      <filename>changes-regressionTests.xml</filename> 
      <path>..</path> 
      <appendTimeStamp>True</appendTimeStamp> 
     </modificationWriter> 
     <nant>...</nant> 
    </tasks> 
</project> 
<project name="regressionTests"> 
    ... 
    <tasks> 
     <modificationReader> 
      <filename>changes-regressionTests.xml</filename> 
      <path>..</path> 
      <deleteAfterRead>True</deleteAfterRead> 
     </modificationReader> 
     <nant>...</nant> 
    </tasks> 
</project> 
相關問題