测试

PHP 测试

Chamilo 使用 PHPUnit 进行后端测试。

测试数据库设置

测试需要一个专用的数据库。创建 .env.test.local 文件,并填写测试数据库的凭据:

DATABASE_HOST='127.0.0.1'
DATABASE_PORT='3306'
DATABASE_NAME='chamilo_test'
DATABASE_USER='root'
DATABASE_PASSWORD='root'

然后初始化测试数据库:

php bin/console --env=test cache:clear
php bin/console --env=test doctrine:database:create
php bin/console --env=test doctrine:schema:create
php bin/console --env=test doctrine:fixtures:load --no-interaction

在模式更改后重置数据库:

php bin/console --env=test doctrine:schema:update --force --complete

运行测试

测试位置

测试文件位于 tests/ 目录下:

测试类型

  • 单元/集成测试 — 位于 CoreBundle/CourseBundle/ 中的 PHPUnit 测试;大多数测试会连接真实的数据库(通过 dama/doctrine-test-bundle

  • 功能(API)测试 — 继承 AbstractApiTest,对 HTTP 端点进行端到端测试

  • Behat 测试 — 位于 tests/behat/features/ 中的浏览器级验收测试(见下文)

Behat(端到端)测试

Chamilo 拥有一套 Behat 测试套件,用于浏览器级的验收测试。运行测试需要一个正在运行的 Chamilo 实例、Chrome 浏览器以及 ChromeDriver。

在运行之前,请在 tests/behat/behat.yml 中配置基础 URL。

前端检查

PHP 代码质量

Chamilo 使用 ECS(Easy Coding Standard)、PHPStanPsalm 来保证代码质量。Composer 提供了每个工具的快捷命令:

注意:本项目中没有使用 php-cs-fixer。代码风格工具是 ECS(symplify/easy-coding-standard)。

持续集成

拉取请求会自动通过四个 GitHub Actions 工作流程进行检查:

工作流程
运行内容

phpunit.yml

PHPUnit 测试套件

format_code.yml

ECS 代码风格检查

php_analysis.yml

Psalm、Doctrine 模式验证、安全检查

behat.yml

Behat 端到端测试

最后更新于

这有帮助吗?