为 composer 包编写自动化测试需先安装 phpUnit,再创建测试用例并配置 phpunit.xml.dist,接着通过 gitHub Actions 实现 CI 自动化,最后优化脚本命令与发布配置以提升效率和可维护性。

为 Composer 包编写自动化测试是确保代码质量、提升协作效率和维护长期可维护性的关键步骤。很多人在开发 PHP 包时只关注功能实现,忽略了测试的重要性。其实只要配置得当,自动化测试可以非常简单高效。
选择合适的测试框架
PHP 社区中最主流的单元测试框架是 PHPUnit,它与 Composer 集成良好,适合大多数场景。
在你的包根目录下,通过 Composer 安装 PHPUnit 作为开发依赖:
composer require –dev phpunit/phpunit
安装完成后,你可以创建一个简单的测试文件来验证环境是否正常工作。
例如,在项目中创建 tests/ExampleTest.php:
<?php
use PHPUnitFrameworkTestCase;
class ExampleTest extends TestCase
{
public function testTrueIsTrue() {
$this->assertTrue(true);
}
}
接着创建 phpunit.xml.dist 配置文件,让 PHPUnit 知道如何运行测试:
<?xml version=”1.0″ encoding=”UTF-8″?>
<phpunit bootstrap=”vendor/autoload.php” colors=”true”>
<testsuites>
<testsuite name=”Package Test Suite”>
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
编写有意义的测试用例
测试应覆盖核心逻辑,比如类方法的行为、边界条件和异常处理。
假设你有一个简单的计算器类 Calculator.php:
<?php
class Calculator
{
public function add($a, $b)
{
return $a + $b;
}
}
对应的测试文件 tests/CalculatorTest.php 可以这样写:
<?php
use PHPUnitFrameworkTestCase;
class CalculatorTest extends TestCase
{
public function testAddReturnsSumOfTwoNumbers()
{
$calc = new Calculator();
$this->assertEquals(5, $calc->add(2, 3));
}
}
使用 assertEquals 断言结果是否符合预期。你还可以添加更多用例,比如负数、零值等。
集成 github Actions 实现自动化
将测试自动化到 CI(持续集成)流程中,每次提交代码都会自动运行测试。
在项目根目录创建 .github/workflows/test.yml:
name: Run Tests
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
– uses: actions/checkout@v4
– name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ‘8.1’
tools: composer
– name: Install dependencies
run: composer install
– name: Run tests
run: vendor/bin/phpunit
当你推送代码到 GitHub 时,Actions 会自动拉取代码、安装依赖并执行测试。如果测试失败,会有明显提示。
优化体验的小建议
让测试更高效和易用,可以做一些小优化:
- 在 composer.json 中添加脚本命令:
“scripts”: {
“test”: “phpunit”
}
之后就可以用 composer test 快速运行测试。
- 使用 phpunit –coverage-text 查看测试覆盖率(需安装 Xdebug)。
- 添加 .gitattributes 文件,排除测试文件打包发布:
/tests export-ignore
.phpunit.result.cache export-ignore
.github export-ignore
这样别人通过 Composer 安装你的包时不会包含测试相关文件。
基本上就这些。一套完整的自动化测试体系并不复杂,但能极大提升包的可靠性。从现在开始,为你的 Composer 包加上测试吧,你会发现维护起来轻松很多。
以上就是如何为composer包编写自动化测试_教你为composer包添加自动化测试的详细内容,更多请关注php中文网其它相关文章!