somemo's diary

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【Symfony2】テスト用環境の作成

テーブルにデータを追加して、記事単体の閲覧をできるようにします。

データの追加

まず、データを一行追加します。

insert into blogsymfony2.post (id, title, body, createdAt, updatedAt)
values (null, 'タイトル', '本文', now(), now())

全ページ閲覧のテストの崩壊

データを追加したことにより、テスト結果がレッドになりました。当たり前ですが、1つも記事がない場合のテストを書いていたからです。

テスト用データベースの作成

テスト用データベースを作成します。

create database blogsymfony2_test character utf8 collate utf8_general_ci

既に作成されているデータベースの権限を確認します。

show grants for blogsymfony2@localhost

確認した権限をもとに作成したデータベースに対する権限を与えます。

GRANT ALL PRIVILEGES ON `blogsymfony2_test`.* TO 'blogsymfony2'@'localhost'

テスト用データベースの指定

テスト用に使うデータベースを指定します。%kernel.environment%はtestになります。

doctrine:
    dbal:
        dbname: '%database_name%_%kernel.environment%'

テスト用データベースにテーブル作成

テスト用データベースにpostテーブルを作成します。環境を指定しています。

php app/console --env=test doctrine:schema:create
ATTENTION: This operation should not be executed in a production environment.

Creating database schema...
Database schema created successfully!

テスト用データベースのpostにはデータがないので、とりあえずテストがグリーンになりました。