適用於 PHP 的 NetBeans IDE 支持 PHPUnit 自動測試。經過 PHPUnit,NetBeans IDE 可爲 PHP 提供代碼覆蓋率,這與 IDE 爲 Python 提供的代碼覆蓋率相似。測試輸出將顯示在功能豐富的輸出窗口中,該窗口與 IDE 的 JUnit 和 Python 測試運行器所使用的輸出窗口相同。php
NetBeans IDE 還支持將 Selenium 可移植測試框架與 PHPUnit 結合使用。Selenium 插件能夠從更新中心獲取。安裝此插件會將 Selenium 服務器添加到 IDE 的已註冊服務器中,並將 Selenium 測試選項添加到 PHP 菜單。html
目錄編程
要學習本教程,您須要具有如下軟件和資源。windows
軟件或資源 | 要求的版本 |
---|---|
NetBeans IDE | PHP 下載包 |
PHP 引擎,包括 PEAR | 版本 5。 |
Web 服務器 | 推薦使用 Apache HTTP Server 2.2。 |
PHPUnit | 版本 3.4.0 或更高版本。 |
PHPUnit 的框架生成器 | 做爲 PHPUnit 的版本。 |
使用 PEAR 安裝 PHPUnit(如 PHPUnit 文檔中所述)和 PHPUnit 的框架生成器(如框架生成器文檔中所述)。應安裝 PHPUnit 版本 3.4.0 或更高版本。無需任何特殊設置。安裝 PHPUnit 以後,NetBeans 即可識別它。請注意,您須要將 PEAR 隨 PHP 引擎一塊兒安裝。另請注意,PHPUnit 文檔中指出 PHPUnit 一般會安裝到本地 PEAR 目錄。該文檔還給出了具體的路徑:/usr/lib/php/PHPUnit;但在適用於 Windows 的 XAMPP 上,此路徑爲 XAMPP_HOME\php\PEAR\PHPUnit。瀏覽器
要檢查 NetBeans IDE 是否能夠識別您的 PHPUnit 安裝,請打開 "Tools"(工具)> "Options"(選項)(在 Mac 上,請打開 "NetBeans Preferences"(NetBeans 首選項))並查看 "PHP" 窗口。打開 "Unit Testing"(單元測試)標籤。此時應顯示您的 PHPUnit 和框架生成器腳本的路徑。若是沒有顯示腳本,請單擊空字段旁邊的 "Search"(搜索)。IDE 將在您的本地系統中搜索該腳本。或者,單擊 "Browse"(瀏覽)瀏覽查找腳本。服務器
NetBeans IDE 能夠對某個文件中的全部 PHP 類建立並運行 PHPUnit 測試。爲確保測試生成器能夠正常運行,請爲 PHP 文件指定與該文件中的第一類相同的名稱。oracle
爲某個類建立並運行 PHPUnit 測試:app
<?php class Calculator { public function add($a, $b) { return $a + $b; } } ?>
<?php class Calculator { /** * @assert (0, 0) == 0 * @assert (0, 1) == 1 * @assert (1, 0) == 1 * @assert (1, 1) == 2 * @assert (1, 2) == 4 */ public function add($a, $b) { return $a + $b; } } ?>
注:您可使用標註代碼完成來添加 @assert
標註。使用 Tab 鍵在參數之間導航,或者在填寫參數值後單擊 Enter。框架
注:您能夠手動爲一個項目編寫多個測試。若是編寫多個測試,能夠將它們分類到測試文件目錄的子文件夾中,例如 "important" 或 "quick"。而後,能夠經過右鍵單擊某個子文件夾並選擇 "Run Tests"(運行測試),來運行該文件夾中的測試。編程語言
請注意,將爲每一個 @assert 標註建立一個測試。
/** * Generated from @assert (1, 1) == 2. */ public function testAdd4() { $this->assertEquals( 2, $this->object->add(1, 1) ); }
測試結果的更詳細文本版本會顯示在 "Output"(輸出)窗口中。
您能夠選擇要在測試套件運行期間執行的測試組。例如,可能有一些測試您但願只在生產環境中運行,而另外一些測試在生產和開發環境中同時運行。您能夠將前一種測試放在production 組中,而將後一種測試同時放在 production 和 development 組中。在開發環境中運行測試套件時,能夠選擇只執行 development 測試組。
必須首先對 PHP 項目啓用測試組,而後才能對該項目中的全部文件使用測試組。
要將測試標記爲測試組的一部分,請使用 @group [group name] 來標註測試方法。
建立和運行測試組:
有關 NetBeans IDE 中 PhpUnit 測試組的詳細信息,請參見 "NetBeans IDE for PHP" 博客帖子:Using PHP Unit Test Groups(使用 PHP 單元測試組)。
PHPUnit 測試的結果會顯示在 IDE 的 "Test Results"(測試結果)和 "Output"(輸出)兩個窗口中。"Test Results"(測試結果)窗口包含一個圖形窗格和一個簡短文本窗格。「"Output"(輸出)窗口提供了輸出的更詳細文本版本。在此部分,您將詳細瞭解 "Test Results"(測試結果)窗口和 "Output"(輸出)窗口。
在 "Test Results"(測試結果)窗口中,您能夠從下列位置獲取有關失敗的測試的信息:
"Test Results"(測試結果)窗口在左側包括如下按鈕:
"Output"(輸出)窗口顯示 PHPUnit 腳本的完整輸出。當您沒法經過 "Test Results"(測試結果)窗口中的信息找出錯誤緣由時,該窗口會很是有用。與 "Test Results"(測試結果)窗口相似,"Output"(輸出)窗口包括指向失敗的測試類行的連接。它還在左側包括用於從新運行測試和用於打開 "PHP Options"(PHP 選項)窗口的按鈕。
適用於 PHP 的 NetBeans IDE 提供了代碼覆蓋率以及 PHPUnit 支持。(IDE 也爲 Python 提供了代碼覆蓋率)。代碼覆蓋率檢查 PHPUnit 測試是否覆蓋了全部方法。在此部分,您將瞭解如何經過現有 Calculator 類來使用代碼覆蓋率。
使用代碼覆蓋率:
<?php class Calculator { /** * @assert (0, 0) == 0 * @assert (0, 1) == 1 * @assert (1, 0) == 1 * @assert (1, 1) == 2 * @assert (1, 2) == 4 */ public function add($a, $b) { return $a + $b; } public function add2($a, $b) { return $a + $b; } } ?>
警告:若是在添加 add2 函數以後從新生成測試文件,則不會運行 PHPUnit 測試。這是由於 PHPUnit 建立了兩個衝突的 testAdd2 函數。若是您計劃對多個此類函數使用 PHPUnit,則不要經過在末尾附加數字的方式來區分函數。請參見 PHPUnit 文檔。
在 IDE 中,能夠爲項目選擇如下定製配置:
要設置項目特定的配置,請執行如下操做:
使用定製類加載器的項目須要引導選項,例如,經過實現 Magic 函數 __autoload()。若是須要預先包含一個文件(如定義項目中的多個類所使用的全局常量的文件),則也須要使用引導選項。
可經過 XML 配置文件定義命令行調用中使用的選項。PHPUnit 手冊中進行了完整介紹。還可使用 XML 配置文件爲測試用例定義 php.ini 設置和全局變量。也能夠在 XML 配置文件中設置引導選項。
若是設置定製測試套件,每次選擇 "Run"(運行)> "Test Project"(測試項目)時,都會運行該套件。若是要僅運行一部分測試,或者要使用最近添加(必須手動添加)的 PHPUnit 功能(如數據提供器),該功能特別有用。請注意,您能夠根據須要定義多個測試套件,並經過在項目資源管理器中右鍵單擊文件並選擇 "run"(運行)來分別運行這些套件。爲防止形成混亂,NetBeans 會通知您是否使用定製測試套件。能夠在 "Test Results"(測試結果)和 "Output"(輸出)窗口中找到通知。
能夠將定製 PHPUnit 腳本(而非 "Tools"(工具)> "Options"(選項)中所選的默認腳本)用於項目。定製 PHPUnit 腳本能夠包含 PHPUnit 手冊中描述的任何命令行開關。
Selenium 是一種測試 Web 應用程序框架的可移植軟件。這些測試能夠編寫爲 HTML 表,或以各類經常使用的編程語言進行編碼,而且能夠直接在目前的多數 Web 瀏覽器中運行。Selenium 能夠部署在 Windows、Linux 和 Macintosh 上。有關更多詳細信息,請參見 Selenium Web 站點。
NetBeans IDE 具備包含 Selenium 服務器的插件。經過此插件,您能夠對 PHP、Web 應用程序或 Maven 項目運行 Selenium 測試。要對 PHP 運行 Selenium 測試,須要將 Testing Selenium 軟件包安裝到 PHP 引擎。
對 PHP 運行 Selenium 測試:
下面是供您探討的更多思路:
要發送意見和建議、得到支持以及隨時瞭解 NetBeans IDE PHP 開發功能的最新開發狀況,請加入 users@php.netbeans.org 郵件列表。NetBeans IDE 論壇上提供了此列表的鏡像。