2013-01-15 171 views
0

如何使用TeamCity在每個構建中執行自動化集成測試?持續集成工具(TeamCity)中的集成測試

通常會有下列步驟操作:

  1. 從代碼庫中檢出;
  2. 構建;
  3. 部署;
  4. 啓動服務器;
  5. 在服務器上運行測試。

問題是這些步驟依賴於另一個;這一切都運行良好,直到第4步。在這裏你啓動服務器,但它不會去第5步,直到第4步完成。但是如果第4步完成,服務器將停止,因此第5步中的測試將無法使用服務器。

我想到的唯一解決方法很奇怪,並且醜陋(我不知道它是否真的起作用):首先在守護程序線程中觸發測試,首先應該等待2分鐘讓服務器啓動時間);由於線程是一個守護進程線程,因此JVM可以停止,並且線程仍繼續觸發測試。之後,它可以進入啓動服務器的下一步,直到服務器被注視,計時器耗盡並觸發測試。

+0

是否有任何理由你的服務器無法作爲後臺進程/守護進程本身運行? – Bilal

回答

1

這取決於「啓動服務器」的含義。我們正是這樣做的,但我們將「啓動服務器」視爲實際啓動服務器 - 當服務器功能完整時,該步驟結束。然後我們添加第6步「停止服務器」。在第5步中,我們使用TeamCity的NUnit亞軍來運行測試。它效果很好。

+0

從Start Server的Team City構建步驟調用Ant目標,該目標是啓動服務器的一個.sh腳本(JBoss)。它在服務器完全正常運行時不會停止。 – m3th0dman

+0

所以這就是你的問題 - 重寫腳本來啓動服務器並返回並繼續運行,然後編寫另一個發現並停止它的腳本。 –