Tech & Tips

PHPUnitをdockerコンテナで動かす

この記事は2年以上前ですので、内容が古い可能性があります

はじめに

PHPUnitとは、
単体テストを効率よく書くためのテスティングフレームワーク(ツール)
PHPUnit マニュアル

PHPUnitをdockerコンテナで動かす

使用するファイルは、
phpunit
を使用します。

・PHPUnitコンテナをビルドする
Dockerfileがあるディレクトリで

docker build . -t [好きなリポジトリ名]:[好きなversion]

・ユニットテストを実行する
phpunit.xmlがあるディレクトリで

docker run \
    -v $(pwd):/app \
    -v $(pwd)/php.ini:/etc/php7/php.ini \
    -v $(pwd)/[wordpressまでのパス]:/html \
    --link [databaseコンテナ名]:[ホスト名] \
    --net [ネットワーク名] \
    --rm \
    [リポジトリ名]:[version] tests

上記でコンテナを立ち上げて、
dockerで立ち上がっているプロジェクトに対してテストを行うことができます。

docker run の各箇所解説

ホストのディレクトリをphpunitコンテナのメインディレクトリにマウントしてます。

-v $(pwd):/app

php.iniをマウントしてます。

-v $(pwd)/php.ini:/etc/php7/php.ini

wordpressのソースをマウントしてます。

-v $(pwd)/[wordpressまでのパス]:/html

databaseコンテナにリンクを貼ってます。
ホスト名はwebコンテナで使用しているdatabaseコンテナと同名にする必要があります。

--link [databaseコンテナ名]:[ホスト名]

ネットワークにコンテナを接続します。

--net [ネットワーク名]

docker-composeで立ち上げたコンテナと、docker runで立ち上げるコンテナはネットワークが違うので
run時にdocker-composeで使用しているネットワーク名を明示してあげる必要があります。
ネットワーク名が以下コマンドで調べられます。

docker network ls

コンテナとして起動するイメージを指定。--rmつけると動作終わったらそのコンテナが削除されます。

--rm [リポジトリ名]:[version]

phpunit.phpが読み込まれてユニットテストが走ります。

phpunit

さいごに

webコンテナに直接PHPUnitを入れられない理由がある場合などの時に、
使用するとすごく便利です。

この記事をシェアする:
◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

私たちと一緒に働きませんか?

「PHPUnitをdockerコンテナで動かす」はいかがでしたか?
株式会社プレスマンでは、 WordPressが大好きな方、仕事を通してさらにスキルを磨きたい方を募集しています。 まずは募集職種をご覧の上、お気軽にお問い合わせください。 あなたとお会いできるのを楽しみにしています。

採用情報を見る

-Tech & Tips

© 2024 PRESSMAN*Tech Powered by STINGER