タグ: PHP

■ 目次

  1. Codeception TestTools
  2. 使い方
  3. その他の拡張機能について

■ Codeception TestTools

Codeception TestToolsはChromeの拡張機能である

ブラウザの操作だけで受け入れテスト(Acceptance test)のソースを自動で書き起こすことができる

出来上がったソースコードを元に受け入れテストを拡充していくことができる

テスト

■ 目次

  1. 概要
  2. 作り方に関して
  3. ゼロからCodeceptionを追加する
    1. 準備
    2. 単体テスト追加
    3. 機能テスト追加

■ 概要

前回Codeceptionについてどんなテストがあるのかと実際に動くものを見てどんな感じなのかイメージを持ったので

今回は実際にテストが無いプロジェクトに対してCodeceptionを追加してみる

PHP Codeceptionテスト入門の入門

ゼロスタートということでどのように追加していくのか、またファイル構成を見ることを中心に解説を行う

テスト

■ 目次

  1. Codeceptionとは
  2. テストの必要性
  3. 単体テスト・機能テスト・受け入れテスト
  4. とりあえず使ってみる

■ Codeceptionとは

PHPのテストを簡単に行うためのテスティングフレームワーク
単体テスト、機能テスト、受け入れテストの3種類のテストを簡単に書くことができる

公式ドキュメントも日本語で読めるので敷居が低い
Codeception.docs.ja
しかしそれでも敷居が高い人や、使ってはいるけどあんまり理解していない人向けに簡潔にまとめていくこととする

Codeceptionはテストの実行環境としてPHPUnitを使用しているので、今まで PHPUnitを使っているテストでも、Codeceptionに移行するのは容易である。またテストを実行するためにPHPUnitを別途インストールする必要はない

実際にプロジェクトにCodeceptionを追加する話は次回としている

プロジェクトにCodeceptionテストをゼロから追加する

テスト

■ 目次

  1. 概要
  2. Guzzleを試してみる
  3. 非同期処理を試してみる

■ 概要

GuzzleとはHTTPリクエストを簡単に送信できるPHPのHTTPクライアントである

HTTPクライアントの中でも現在最も主流となっていて、複数のリクエストを並列で送信することもできる

Guzzleをとりあえず使うところから、並列リクエストの方法も書いてみる

Guzzleのドキュメント(英語)

開発

■ 目次

  1. 概要
  2. とりあえず使ってみる
  3. Respect/Validationでできること

■ 概要

ユーザーから入力された値が問題ないかチェックするバリデーション処理を行うためのPHPライブラリであるRespect/Validationについて触ってみる

バリデーション条件も多数あってそれを直感的に使用することができるため導入コストが少ないものとなっている

GHE:https://github.com/Respect/Validation

設計 開発

■ 目次

  1. 概要
  2. PHPDocの書き方
  3. PHPDocを記述する例
  4. ドキュメントを自動生成する

■ 概要

phpDocumentorとはクラスやメソッドの定義前にブロックコメントを決められた方式で記述していると、APIドキュメントを自動生成することができるツール

今回はそのphpDocumentorで記述する書式についてまとめる

言語

■ 目次

  1. 概要
  2. 環境準備
  3. MySQLのデータを準備
  4. サンプルプログラム準備
  5. サンプルプログラム解説

■ 概要

Doctrineを使ってPHPからデータベースを操作する

DoctrineとはORMツールで、ORMとはオブジェクト関係マッピング(Object relational mapping)というDBのデータとPHPのクラスをマッピングして変換する技法である

今回はPHPのマイクロフレームワークであるSlimの中でDoctrineを使ったDB操作サンプルプログラムを試す

データベース 開発

■ 目次

  1. 概要
  2. PHP5.6系を入れる
  3. ついでにcomposerも用意する
  4. MySQL5.7系を入れる
  5. インストール用の簡易スクリプトを作成する
  6. 備考

■ 概要

MySQL5.7系とPHP5.6系が入った環境をセットアップする
目的としてはPHP,MySQLの開発環境を用意することで、開発で使うであろうcomposerも用意する

// 以下の環境で実施していくことを想定する
$ cat /etc/redhat-release
CentOS release 6.8 (Final)

データベース

■ 目次

  1. 概要
  2. Jenkinsサーバセットアップ
  3. Seleniumを使うための準備
  4. Jenkinsのジョブを作成する
  5. 補足:画面キャプチャを確認する

■ 概要

JenkinsでSeleniumのテストを自動実行できるようする

Jenkinsで行うということで画面が無いことからJenkinsサーバに仮想ディスプレイ(Xvfb)を入れてテストを行うことになる

JenkinsやSelenium単体についてどういったものかはそれぞれ以下にまとめてあるので参考にしてほしい

Selenium入門の入門

PHPUnitとSelenium WebDriverを使ってヘッドレスにブラウザテストを行う

Jenkins入門の入門

テスト

■ 目次

  1. 概要
  2. PHP_CodeSnifferとは
  3. PHPMDとは
  4. 自動チェック手順
    1. リポジトリ作成
    2. composer.json作成
    3. サンプルプログラム作成
    4. phpmd,phpcsを試しに実行してみる
    5. pre-commit時に実行するようにする
    6. エラー時にcommitできないことを確認する

■ 概要

複数人で開発を行うと各々好き勝手にコードを書かれてしまって気がついたらコーディング規約が定まらない汚いソースコードになってしまうので便利ツールを使って少しでも改善していく。

PHPコードのチェックをPHP_CodeSnifferとPHPMDで行う

自動でチェックが走るようにGitのHooks機能機能を使ってcommit時に毎回確認するようにする

テスト 開発