在 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
文件中配置的所有测试用例,并显示测试结果。
注意:在实际项目中,可能需要根据项目的具体需求和结构对以上步骤进行调整。