2008-12-01 134 views
8

我正在尋找完整的解決方案來自動構建和測試PHP應用程序。我遇到了PhpUnderControl,這是一個用於運行Cruise Control周圍創建的自動化應用程序構建的解決方案。巡航控制和PHP項目

不幸的是,PhpUC仍處於開發的早期階段,我無法在windows系統上運行它。

經過幾個小時的嘗試,我放棄了phpUc。我現在試圖單獨使用克魯斯控制。在運行整個構建過程時,它工作得很好。我放入ant的構建文件中的每個命令都可以正常運行。

我得到的唯一問題是Cruise Control不會將來自運行構建的日誌合併到項目日誌文件中,因此我無法看到任何構建結果。但巡航控制中的示例項目可以正常工作,將構建日誌合併到項目日誌中。

我想知道Cruise Control是否能夠將由PHPUnit(以XML格式)創建的日誌合併到項目日誌中,還是隻能用於Java的JUnit文件。有沒有人試圖在一個PHP項目上單獨使用Cruise Control?

這裏的項目配置的日誌部分(config.xml文件):

<log dir="logs/${project.name}"> 
<merge dir="projects/${project.name}/build/logs/"/> 
</log> 

這是複製粘貼+路徑從巡航控制的示例項目改變。

任何人都請任何想法。

感謝

回答

2

我想知道如果巡航控制 能夠合併由PHPUnit的 (以XML格式)創建登錄到項目日誌或者是 它的工作只有Java的JUnit的文件 。

CC將合併您指向它的任何xml文件。當你說合並文件不工作時,你得到一個錯誤合併他們或測試結果沒有顯示在結果頁面上?如果您查看構建日誌文件,您是否看到合併的測試結果?

您可能會看到的一個問題是,jsp報告應用程序中的.xsl文件期望測試結果處於ant junit任務創建的結構中。可能發生的情況是,您正在合併文件,但.xsl不知道如何顯示結果。

但我認爲有一個簡單的解決方案。 PhpUnderControl項目提供了一個phpunit.jsp。我想如果你把這個添加到你現有的CC安裝中,你將能夠查看測試結果。您可以很容易地將phpunit.jsp添加到選項卡中;只要看看main.jsp就可以了。

如果您有任何後續問題,我建議您使用CruiseControl users mailing list

(我沒有用CC上的PHP項目,但我是CC的提交者之一。)

+0

感謝您花時間回答我的問題, 我的意思是'合併不工作'是指在第一次構建後沒有在cc/logs/project目錄下創建日誌文件。 我重新開始並創建了一個新的config.xml文件,然後我開始工作。我想我以某種方式弄亂了配置文件。 – CountZero 2008-12-02 09:03:39

0

我發現CruiseControl的唯一合併包含測試結果測試失敗時的日誌。

當我故意破壞了測試,結果被合併到日誌中,並顯示在CruiseControl儀表板上。

這可能是你的問題嗎?

0

我們嘗試使用PHPUc與CC,我們無法得到正確的東西。我們嘗試了直接CC,但發現很難在那裏獲得認證(我們是分佈式的,所以我們的報告將向全世界開放,除非我們確定了它 - 我們無法弄清楚。)

所以,我們現在實際上使用Hudson作爲我們的CI引擎,Phing作爲我們的構建工具。它工作得很好。我們的代碼覆蓋率報告直接來自PHPUnit(哈德森仍稱Java世界中的「Clover coverage」,但嘿它只是一個鏈接的名稱,我們知道它的含義)。

哈德森很容易建立,似乎與PHP所需的一切工作。

+0

由於我發佈了這個,我們實際上確實讓PHPuc與Cruise Control合作,並且非常流暢。我不是那個做的人,但顯然它可以做到。我們有PHPUnit,PMD,CodeSniffer和指標圖表的所有工作代碼覆蓋報告。所以有希望。 – 2010-01-09 01:09:19

1

phpunit,phpUnderControl和CC工作得很好!

對於PHPUnit的XML文件中獲取測試的標籤(phpUnderControl與CC)確保產生PHPUnit的日誌文件是在正確的道路

<log type="junit" target="...../cruisecontrol-bin-2.8.4/projects/<projname>/build/logs/logfile.xml" logIncompleteSkipped="false"/> 

一旦logfile.xml從PHPUnit測試生成顯示在phpUnderControl和CC的測試標籤中。