在 Ubuntu 上為 ThinkPHP 項目進行單元測試,可以遵循以下步驟:
首先,確保已經安裝了 PHP 和 Composer。然后,在項目根目錄下運行以下命令來安裝 PHPUnit 和其他必要的依賴:
composer require --dev phpunit/phpunit ^9.0
在項目根目錄下創建一個名為 phpunit.xml 的文件。這個文件將包含 PHPUnit 的配置信息。以下是一個簡單的示例配置:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php"
colors="true"
verbose="true"
stopOnFailure="false">
<testsuites>
<testsuite name="ThinkPHP Test Suite">
<directory suffix="Test.php">./application/test</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix="Controller.php">./application/controller</directory>
<directory suffix="Model.php">./application/model</directory>
<directory suffix="Service.php">./application/service</directory>
</whitelist>
</filter>
</phpunit>
這個配置指定了測試文件的位置(在 application/test 目錄下),以及要包含在測試中的類文件(位于 application/controller、application/model 和 application/service 目錄下的類文件)。
在 application/test 目錄下創建測試用例文件。例如,如果要為一個名為 ExampleController 的控制器編寫測試用例,可以創建一個名為 ExampleControllerTest.php 的文件。測試用例文件應繼承 TestCase 類,并使用 public function test*() 方法定義測試方法。以下是一個簡單的示例:
<?php
namespace app\test;
use PHPUnit\Framework\TestCase;
use app\controller\ExampleController;
class ExampleControllerTest extends TestCase
{
public function testIndex()
{
$controller = new ExampleController();
$response = $controller->index();
$this->assertStringContainsString('Welcome to ThinkPHP', $response);
}
}
在項目根目錄下運行以下命令來執行 PHPUnit 測試:
vendor/bin/phpunit
這將運行在 phpunit.xml 文件中配置的所有測試用例,并顯示測試結果。
注意:在實際項目中,可能需要根據項目的具體需求和結構對以上步驟進行調整。