テスト

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)、PHPStan、および Psalm を使用しています。それぞれにComposerのショートカットが用意されています:

注意:このプロジェクトには php-cs-fixer はありません。ECS (symplify/easy-coding-standard) がコードスタイルツールです。

継続的インテグレーション

プルリクエストは、GitHub Actionsの4つのワークフローによって自動的にチェックされます:

ワークフロー
実行内容

phpunit.yml

PHPUnitテストスイート

format_code.yml

ECSによるコードスタイルチェック

php_analysis.yml

Psalm、Doctrineスキーマ検証、セキュリティチェッカー

behat.yml

Behatによるエンドツーエンドテスト

最終更新

役に立ちましたか?