テストを実行するためには、Docker, Docker Compose および make
ユーティリティをインストールする必要があります。
Docker の構成ファイルは tests/docker
の下にあり、Docker Compose ファイルは tests/docker-compose.yml
です。
PHP のバージョン (5.6, 7.0, 7.1, 7.2, 7.3) によって構成ファイルは異なります。docker-compose.yml
ファイルがある場所を指定するために .env
ファイルを作成する必要があります。
プロジェクトのルート・ディレクトリにある .env.example
ファイルから.env
ファイルを作成すると良いでしょう。
テストを実行するためには、次のコマンドを実行します。
# PHP のすべてのバージョン
make test
# PHP 7.3 のみ
make test73
phpunit
にオプションを渡す必要があるとき (例えば一つのテストファイルだけを実行するとき) は、以下のコマンドを使います。
`
bash
docker-compose build --pull php73
docker-compose run php73 vendor/bin/phpunit tests\drivers\sqs\QueueTest /vagrant/yii2-queue/tests/drivers/sqs/QueueTest.php
docker-compose down
`
さまざまな理由で、いくつかのテストをデフォルトで無効にしたいことがあるでしょう。(例えば、AWS SQS テストは AWS にキューがセットアップされていることを要求します。)
テスト実行時には AWS_SQS_ENABLED
環境変数がチェックされます。(\tests\drivers\sqs\QueueTest::setUp
を参照。)
AWS SQS テストを実行するためにはこの環境変数を 1
に設定する必要があります。コンテナに渡したい環境変数を
ベース・ディレクトリの .env
ファイルで指定することが出来ます。(.env.example
を参照)
AWS SQS テストでは、.env
ファイルによってキューの認証情報もコンテナに渡す必要があります。(tests/app/config/main.php
を参照)
# .env
AWS_SQS_ENABLED=1
AWS_KEY=KEY
AWS_SECRET=SECRET
AWS_REGION=us-east-1
AWS_SQS_URL=https://sqs.us-east-1.amazonaws.com/234888945020/queue1
# これで AWS SQS テストはスキップされなくなる
make test73