Edited at

PHPのモダンなテスティングフレームワークのCodeceptionを使ってみた

More than 3 years have passed since last update.

Codeception?


  • フルスタックなテスティングフレームワーク

  • 単体テスト、機能テスト、受け入れテストをサポート

  • 内部はPHPUnit

あ、今回は受け入れテストのみやってみます。Seleniumと連携するまで。


composer.json

"require-dev": {

"codeception/codeception": "*"
}

composer update

準備!

./vendor/bin/codecept bootstrap

受け入れテスト作成

./vendor/bin/codecept generate:cept acceptance SignIn

できた。 /tests/acceptance/SignInCept.php

Seleniumインストール(Mac)

brew install selenium-server-standalone

Selenium起動

selenium-server


acceptance.suite.yml

class_name: AcceptanceTester

modules:
enabled:
- WebDriver:
url: 'http://localhost/'
browser: firefox


SignIn.php

$I = new AcceptanceTester($scenario);

$I->wantTo('Sign In');
$I->amOnPage('/');
$I->fillField('userid', 'admin');
$I->fillField('password', 'admin');
$I->click('ログイン');
$I->see('ログインしました。');


./vendor/bin/codecept run

これでブラウザが起動して、フォームに入力して、ログインボタンクリックしたら何が表示されるかまでテストしてくれます。

Codeception PHP Testing Framework v2.1.3

Powered by PHPUnit 4.8.13 by Sebastian Bergmann and contributors.

Acceptance Tests (1) ------------------------------------------------------------------------------------------
Sign in (SignInCept) Ok
---------------------------------------------------------------------------------------------------------------

Time: 8.06 seconds, Memory: 11.50Mb

OK (1 test, 1 assertions)


参考

Codeception - BDD-style PHP testing.

http://codeception.com/