10款最佳PHP自動化測試框架
為什么測試如此重要?
PHP開發新手往往不會測試自己編寫的代碼,我們中的大多數通過不斷測試我們剛剛所編寫瀏覽器窗口的新特性和功能來進行檢測,但是當事情出現錯誤的時候我們往往不知道應該做些什么。
為我們的代碼進行測試可以節省寶貴的調試時間,當未測試的代碼應用到產品中,回顧那些可能做得不是很好的地方,我們能做些什么?也許最好的辦法就是建立一個產品測試流程,編寫自己的測試代碼來檢測我們的應用程序代碼是否正常工作。關鍵在于測試代碼需要在應用代碼之前編寫,這樣我們可以確保一開始,我們寫的代碼正確之后,測試代碼進入單獨的文件中。如果我們以后碰到PHP應用程序匯總的任何錯誤,我們不需要做任何事情,只要運行我們的測試代碼,就能夠得到關于這些問題的提示信息。
除了節省時間和適當為準備我們的產品應用程序,測試還有其他許多的優點:
- 更易于代碼的維護
- 促進重構
- 更少的安全問題
- 代碼更加簡潔
- 更好的性能 </ul>
什么是自動化測試?
當然,我們可以手動編寫我們的測試,但一段時間過后,在許重復的任務中,它會變得繁瑣和耗時。通過使用特定的軟件,手工測試可以被自動化測試所取代,我們就可以花費更多的時間到代碼測試邏輯。
1.PHPUnit
PHPUnit是編寫PHP應用程序的單元測試中最有名的測試框架。單元測試提取的一小部分代碼我們稱之為單元,然后一個個地測試它們。有了PHPUnit我們能進行測試驅動開發。
它能夠通過命令行使用,并且為我們提供了一個TestCase類,我們能夠根據需要進行擴展。PHPUnit允許開發者使用預先編寫的聲明方法來聲明應用程序具有的特有模式。

Codeception不僅能夠讓我們編寫單元測試,也能夠編寫功能測試和驗收測試。后面這兩種PHP應用程序的測試作為一個整體,所有的功能都綁在一起,不作為一個單元。Codeception允許我們根據開發需求啟用和配置不同的模塊。
它集成了許多的PHP開發框架例如Symfony2, Laravel4, Yii, Phalcon, 和the Zend Framework。這也就意味著我們能夠使用一個PHP自動化測試框架和一個PHP開發框架去建立一個高效的開發流程。

3. Behat
Behat是一個比較流行的行為驅動PHP測試框架。我們使用Behat編寫的測試更像是一個故事而不是代碼。 Behat使用測試驅動開發中StoryBDD 的子類型。
該框架的靈感來自于Cucumber項目,它是一個專門為Ruby語言開發的測試框架。

4. PHPSpec
PHPSpec也遵循下面的行為驅動的測試方法,但是它的其它子類型被稱為 SpecBDD。使用PHPSpec我們需要寫應用程序代碼的首要規范。這是受到了Ruby測試框架RSpec的啟發而來。

5. SimpleTest
SimpleTest是一個易于使用的PHP單元測試框架,應用于測試驅動開發方式中,它可以看做PHPUnit的替代。SimpleTest 支持SSL,forms,proxies,frames和基本身份驗證,它還允許我們測試基本的PHP任務。

6. Storyplayer
Storyplayer是一個全棧測試框架,能為整個平臺寫端到端的測試。Storyplayer已經支持創建和銷毀測試環境。它遵循TDD測試方法,允許我們編寫可以檢查應用程序的功能測試。

7. Peridot
Peridot是一個輕量級的PHP擴展測試框架。它采用了一個事件驅動的結構,允許開發者通過插件自定義框架。

8. Atoum
Atoum是一個直觀并且現代的PHP測試框架,允許我們運行單元測試。它簡化了測試開發,并且由于它是一個新興的框架,充分利用了PHP5.3中介紹的一些新功能,給我們提供了一個快速和易于理解的測試過程。

9.Kahlan
Kahlan是一個功能齊全的BDD測試框架,可以使用描述它的語法編寫單元測試。它包含了KISS的設計原則。
它有一個小的代碼庫,據說比PHPUnit小10倍,它為我們提供了一個可擴展、可自定義的測試流程。

10. Selenium
Selenium是一個復雜的自動化測試框架。這意味著它可能被用于編寫用戶接受測試來檢測整個應用程序。
Selenium是一個強大的工具,自身擁有的擁有WebDriver API,能夠驅動瀏覽器本身就像一個真實的用戶在本地或遠程連接到計算機上。Selenium在測試成熟的Web應用程序中是一個非常優秀的工具。
