PHP教學-在 XAMPP 中安裝 PHPUnit

如何安裝PHPUnit進入XAMPP

PHPUnit 是一種單元測試框架。

雖然有很多方式可以安裝 PHPUnit 在 XAMPP 裡,因此,在這篇文章中,我將涵蓋一步一步指導,如何設置的PHPUnit在我的本地Windows 7 系統中。

設定環境

有3個步驟,你需要在安裝PHPUnit的之前已經完成。

1:安裝XAMPP

首先,很明顯,你需要獲得並安裝XAMPP; 如果你已經擁有它,然後跳到下一個步驟。

XAMPP是一個簡單的,輕量級的Apache發行,使得它非常容易讓開發者創建一個本地Web服務器的開發和測試。你需要建立一個Web服務器(Apache),數據庫(MySQL的),和編程語言(PHP)的一切 - 包括在一個簡單的提取文件。XAMPP也是跨平台的,這意味著它同樣適用於Linux,Mac和Windows。

我不會去通過了如何安裝XAMPP,因為這不是本文的重點,有很多網站獲得幫助安裝XAMPP。

安裝XAMPP後,你通常有你的文件,像一個目錄C:\ XAMPP。

2:安裝作曲家

下一步驟是下載並安裝作曲 ; 如果你已經這樣做了,然後跳到下一個步驟。

作曲家是一個依賴管理器,允許你安裝所有運行的PHPUnit所需要的東西。一旦你下載的文件,點擊安裝包。
第1步:啟動安裝程序


第2步:接受默認值


第3步:找到php.exe的文件



在我的機器,XAMPP被安裝在c:\ XAMPP,所以我的php.exe位於C:\ XAMPP \ PHP \ php.exe的。

在安裝過程中,我有這樣的錯誤信息:

“OpenSSL的擴展名丟失,這將減少作曲家的安全性和穩定性。如果可能的話,你應該啟用或重新編譯PHP並-with,OpenSSL的“

為了解決這個問題,去位於PHP文件夾中的php.ini文件。在我的特殊情況下,它位於C:\ XAMPP \ PHP \ php.ini中。搜索“ 延長= php_openssl.dll”。

取消對一行之前刪除分號,保存文件,然後再繼續安裝。
3:激活了XDebug

XAMPP自帶1.7後,預先打包了XDebug的所有版本; 激活了XDebug,我們需要編輯的php.ini文件。

默認情況下,所有的XDebug的參數被註釋掉。
[XDebug]
;zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
;xdebug.profiler_append = 1
;xdebug.profiler_enable = 0
;xdebug.profiler_enable_trigger = 0
;xdebug.profiler_output_dir = "C:\xampp\tmp"
;xdebug.profiler_output_name = cachegrind.out.%t.%p
;xdebug.remote_enable = true
;xdebug.remote_handler = "dbgp"
;xdebug.remote_host = "localhost"
;xdebug.remote_port = 9000
;xdebug.trace_output_dir = "C:\xampp\tmp"


剛才的所有行之前刪除分號啟動 XDebug 和保存 php.ini 文件。
[XDebug]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.profiler_append = 1
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "C:\xampp\tmp"
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.remote_enable = true
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "localhost"
xdebug.remote_port = 9000
xdebug.trace_output_dir = "C:\xampp\tmp"

為了把我們的新配置的使用,我們需要重新啟動Apache。

要做到這一點,打開XAMPP控制面板,點擊“ 停止 ”按鈕。



要停止XAMPP服務器

然後點擊“ 開始 ”按鈕,重新啟動服務器。


要啟動XAMPP服務器
安裝PHPUnit的

現在,一切都設置它的時間來安裝 PHPUnit。

所有網頁文件通常坐在位於 XAMPP 目錄下的“htdocs”目錄中。所以,我的機器上,我的網頁文件應該放在C:\ XAMPP \ htdocs中。

要使用作曲家安裝PHPUnit我們需要的文件 composer.json,你可以在這裡下載。打開該文件,並且您在第3行看到的,我定義 PHPUnit 來要求。一旦運行安裝,作曲家將下載所需的文件,並將它們在“ vendor ”目錄。
{
    "require"     : { },
    "require-dev" : { "phpunit/phpunit": "*" }
}


要安裝PHPUnit,我們可以從XAMPP控制面板的shell 程序進行 command。
打開 shell 程序的XAMPP

我已經放在composer.json文件中的“ 的UnitTest” 文件夾,我需要導航到該目錄在我的測試將是通過鍵入“CHDIR htdocs \ UnitTest”。
導航到目錄中的shell程序

現在,我在的UnitTest文件夾的目錄,我可以運行“ composer update ”......和我的作曲家庫應通過讀取更新composer.json文件並安裝它需要運行PHPUnit的一切,並建立必要的相關文件中的“ vendor “目錄中。


在shell程序安裝PHPUnit

安裝PHPUnit的文件和文件夾

既然已經安裝了PHP的單元,我們可以開始使用它。
使用PHPUnit的

我創建了一個PHP文件,SimpleTest.php,有2個說法。斷言是在PHP單元測試的基礎上,基本上是驗證的代碼單元的行為與預期的方法。在這種情況下,我返回一個錯誤的和真正的斷言。
PHP
<?php

class SimpleTest extends \PHPUnit_Framework_TestCase
{
     public function testSimple1()
     {
      $this->assertEquals(2, 1 + 2);
     }
     public function testSimple2()
     {
      $this->assertEquals(2, 1+1);
     }
}

因此,對文件進行測試SimpleTest.php,只需鍵入PHPUnit的SimpleTest.php; 請注意,PHPUnit假設類中的所有公共方法都測試並自動執行它們。

簡單的PHPUnit測試

並返回正確的測試結果與2斷言和1失敗。

一個簡單的PHPUnit測試測試結果

如果你想要做你的測試文件夾之外的單元測試,簡單型的PHPUnit之後你的測試文件的相對路徑。在這種情況下,我創建了一個名為“OutsideSimpleTest”簡單的測試,我劃歸“的htdocs”文件夾中。因此,該命令將“PHPUnit的../OutsideSimpleTest.php”
 

一個簡單的PHPUnit測試以特定文件路徑

所以,你可以看到你是不是在安裝PHPUnit的文件夾內限制。

但是,這可能是相當繁瑣不提效率低下做測試一個網頁的時間,這就是為什麼它是如此下一節是一個巨大的節省時間。運行通過你在一個批次所有測試。
運行批處理文件

首先,我們需要定義我們的測試套件配置在phpunit.xml文件,並把它放在我的PHPUnit的文件夾中。在這種情況下,我們指定了“SimpleProject”文件夾將包含所有的測試文件。這裡是如何做到這一點:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit colors="true" bootstrap="vendor/autoload.php">
    <testsuites>
        <testsuite name="WY’s Test Suite">
            <directory>./SimpleProject/</directory>
        </testsuite>
    </testsuites>
</phpunit>

<目錄> ./ SimpleProject / </目錄>簡單講述PHPUnit的,你的測試將位於這樣你就不必手動告訴它每次運行測試的時間。

默認情況下,在文件名後綴“測試”該文件夾中任何東西,將運行一個測試。如果你有一個不同的命名約定,例如,你希望把你的測試樣Simple1.UnitTest.php,使用此
<directory suffix=".UnitTest.php">Custom</directory>

為了驗證這一點,我已經創造了2測試文件(Simple1Test.php和Simple2Test.php),無論返回true斷言。
PHP
<?php
class Simple1Test extends \PHPUnit_Framework_TestCase
{
     public function testSimple()
     {
          $this->assertEquals(2, 1 + 1);
     }

}

和...
PHP
<?php
class Simple2Test extends \PHPUnit_Framework_TestCase
{
     public function testSimple()
     {
          $this->assertEquals(2, 3 - 1);
     }

}

簡單型“PHPUnit 的 ”。它會讀取phpunit.xml並加載相應的測試用例並運行它們。

通過phpunit.xml配置文件的PHPUnit

有關配置最好的東西文件,你有一系列的設置,你可以定義。如果你想測試,而不是運行一個特定目錄下的所有文件某些文件...
<?xml version="1.0" encoding="UTF-8"?>
<phpunit colors="true" bootstrap="vendor/autoload.php">
    <testsuites>
        <testsuite name="WY’s Test Suite">
            <file>/path/to/MyTest.php</file>
        </testsuite>
    </testsuites>
</phpunit>

如果要包含或排除的文件,你可以調用的黑名單和白名單設置
<filter>
  <blacklist>
    <directory suffix=".php">/path/to/files</directory>
    <file>/path/to/file</file>
    <exclude>
      <directory suffix=".php">/path/to/files</directory>
      <file>/path/to/file</file>
    </exclude>
  </blacklist>
  <whitelist processUncoveredFilesFromWhitelist="true">
    <directory suffix=".php">/path/to/files</directory>
    <file>/path/to/file</file>
    <exclude>
      <directory suffix=".php">/path/to/files</directory>
      <file>/path/to/file</file>
    </exclude>
  </whitelist>
</filter>

可用設置是相當值得關注。見https://phpunit.de/manual/current/en/appendixes.configuration.html更多的XML信息。
結論

總括來說,要安裝PHPUnit到XAMPP ...

    確保已安裝XAMPP
    安裝確保作曲
    確保了XDebug被激活
    創建composer.json和安裝PHPUnit
    創建PHPUnit.xml配置文件和簡單的測試用例
    運行在簡單的測試情況下,PHPUnit的,以確保PHPUnit的正確
Download source file here


留言

這個網誌中的熱門文章

c語言-關於#define用法

CMD常用網管指令

PHP 與 JavaScript 之間傳值利用 json