2016-05-12 78 views
2

場景1:我最近一直在使用CI工具Jenkins玩遊戲,以使用Maven集成我的Selenium WebDriver測試。我瞭解,持續集成(就測試而言)是一種概念,只要開發人員簽入一些構建(我們稱之爲Build#666),就會自動觸發測試。這有助於我們在早期階段識別錯誤。在持續集成中運行測試與手動運行測試

場景2:現在假設我沒有使用Jenkins運行相同的測試。假設我甚至不使用Maven,我只需右鍵單擊我的TestNG套件並運行Build#666(這意味着我手動啓動自動化測試,只要檢入Build#666的代碼就立即運行) 。

除了Jenkins允許測試自動運行(無需像場景2中的手動干預)並且具有在所需時間安排測試的功能之外,最大的區別是什麼?

→我還可以考慮場景2是持續集成嗎?因爲我在相同的版本上部署相同的測試,但是我不使用CI工具,而是手動執行?

回答

2

有很多理由使用CI服務器(詹金斯只是衆多選項中的一個),而不是構建和測試本地:

  • CI服務器提供了運行測試已知的環境。開發人員機器通常是手動配置的,所以測試結果可能會因安裝的軟件版本不同,環境配置等而有所不同。

  • CI服務器可以使開發速度比開發更好或更多的硬件機。

  • CI服務器提供諸如不同構建之間的依賴關係等功能,否則您必須自行實施(腳本)。

  • CI服務器是構建工件的存儲庫:編譯和/或打包的軟件以及分析結果,如代碼覆蓋率和靜態分析結果。

  • 不像一個工程師,一個CI服務器可以在白天或夜晚

  • 沒有假期的任何時間運行構建

    • 瞬間
  • 使用CI服務器比讓工程師做同樣的工作要便宜。

倒數第二點意味着不,如果你沒有自動運行你的構建,你沒有做CI。自動化將「C」放入CI中。瞭解。

+0

瞭解。沒有自動部署,那麼沒有CI。 – Shankar

+0

沒錯,除了部署並不意味着正在運行測試,它意味着將軟件安裝在它將運行的環境中。部署不是CI定義的一部分。我編輯了你的問題來糾正這種語言。 –