phpunit使用

phpunit使用

標籤(空格分隔): phpphp


如今是凌晨 3 點。咱們怎樣才能知道本身的代碼依然在工做呢?

Web 應用程序是 24x7 不間斷運行的,所以個人程序是否還在運行這個問題會在晚上一直困擾我。單元測試已經幫我對本身的代碼創建了足夠的信心 —— 這樣我就能夠安穩地睡個好覺了。html

單元測試 是一個爲代碼編寫測試用例並自動運行這些測試的框架。測試驅動的開發 是一種單元測試方法,其思想是應該首先編寫測試程序,並驗證這些測試能夠發現錯誤,而後纔開始編寫須要經過這些測試的代碼。當全部測試都經過時,咱們開發的特性也就完成了。這些單元測試的價值是咱們能夠隨時運行它們 —— 在簽入代碼以前,重大修改以後,或者部署到正在運行的系統以後均可以。git

-- IBM(https://www.ibm.com/developer...github

概述

單元測試是不少編程語言的基本功能, 爲保證代碼的穩定性和功能正常, 適當的進行單元測試是頗有必要的. PHPunit是一個輕量級的PHP單元測試框架。 編程

PHPunit能夠和xdebug配合來生成代碼覆蓋率報告, 而且能夠與Jenkins集成來自動測試, 最後能夠和selenium整合來完成大型的自動化集成測試.bootstrap

安裝

wget https://phar.phpunit.de/phpunit.phar
chmod +x phpunit.phar
mv phpunit.phar /usr/local/bin/phpunit
sudo mv phpunit.phar /usr/local/bin/phpunit
phpunit --version

使用

PHP中使用

<?php
use PHPUnit\Framework\TestCase as BaseTestCase;

class StackTest extends BaseTestCase
{
    public function testPushAndPop()
    {
        $stack = array();
        $this->assertEquals(0, count($stack));

        array_push($stack, 'foo');
        $this->assertEquals('foo', $stack[count($stack) - 1]);
        $this->assertEquals(1, count($stack));

        $this->assertEquals('foo', array_pop($stack));
        $this->assertEquals(0, count($stack));
    }
}

執行結果以下
phpunit執行結果框架

在PHP框架中使用

/**
 * @see https://github.com/jiangjianyong/x-tools/tree/master/language/php/x-phpunit
 * 使用說明 代碼中的phpunit.xml的配置
 * 引入phpunit_bootstrap.php
 * 執行class/Test/*.class.php
 * 避免在每一個測試文件中都引入相同的頭文件.
 * 須要在phpunit_bootstrap.php中將TestCase.class.php include, 不然會報錯(TestCase類不存在).
 * 在含有phpunit.xml文件的目錄下, 執行phpunit, 將會按照phpunit.xml配置執行測試.
 */

<!-- phpunit.xml -->
<?xml version="1.0" encoding="UTF-8"?>

<phpunit colors="true" stopOnFailure="false" bootstrap="phpunit_bootstrap.php">
    <testsuites>
        <testsuite name="class/Test">
            <directory suffix=".class.php">../class/Test</directory>
        </testsuite>
    </testsuites>
</phpunit>

xdebug支持,生成測試覆蓋率報告

phpunit --coverage-html dir testsuite.php
PHPUnit @package_version@ by Sebastian Bergmann.
The Xdebug extension is not loaded.

PHPUNIT生成代碼測試覆蓋率報告時,須要xdebug擴展支持。編程語言

參考文檔

相關文章
相關標籤/搜索