#Outline
Unit Test , Integration (Feature) Test をonboadingで使用するために、phpの環境を構築した。
unit testができるまでの構築手順である
versionによって微妙にコマンドが異なったり、windowsでそもそもする人が少ないので、該当する方々の参考になればと思います
#PHP
1. install PHP
https://www.php.net/
php windows versionのzipをダウンロードする。
今回、IISでFastCGIModuleで動かすため、Non Thread Safe versionを使う。
その後、任意のフォルダに配置する。
今回は、 C:\phpに置く。
2. install xdebug
unit testのcoverageを出すために、xdebugを利用する。
このextensionをdownloadし、C:\php\extに配置する。
3. setup php.ini
php.iniを編集し、一部モジュールをactiveにする
extension=fileinfo
extension=mbstring
extension=mysqli
extension=pdo_mysql
extension=openssl
zend_extension = xdebug
#IIS setting
1. Server Role
Server RoleにIISを追加します。
・Role追加にて、"Web Server (IIS)"を指定する
・Role Servicesにて、"Application Development"の必要な項目を追加する。今回CGI (FastCGIModule)としてphpを動かす
2. install url-rewrite
Laravelでは、URL-Rewriteを使う。
そのため、そのパッケージをインストールする
3. handler mapping php
*.phpにアクセスしたときに、phpを実行するように指定する
4. rewrite URL for laravel
以下のルールを追加する
Category | item | parameter |
---|---|---|
Match URL | Matches the Pattern | ^(.*)$ |
Conditions | {REQUEST_FILENAME} | Is Not a File |
Conditions | {REQUEST_FILENAME} | Is Not a Directory |
Action | Rewrite | index.php/{R:1} |
#Install mariaDB
1. Install
LaravelのDBのアプリを作成するために、簡単に使えるMariaDBを採用(mysqlでもよい)
インストールは簡単で、MariaDBからインストーラをダウンロードし、デフォルトの設定で作成する
2. Create Account
MariaDB Clientがstartupに作成されるため、それを起動する
ログインは、rootのパスワードでログインする
Laravelからアクセスするユーザーの作成と権限付与を行う
使用するsqlコマンド
- CREATE USER
- GRANT ALL
3. Create Database
Laravelのサンプルアプリで使う、databaseを作成する。
とりあえず、サンプルアプリ名=データベース名とする
CREATE DATABASE sample_app
#Install Composer
Composerとは、PHPと必要なライブラリの依存関係を管理する標準形式を提供するアプリケーションレベルのパッケージ管理システム
Laravelをinstallするときに使う
インストーラーをdownloadして、基本的にデフォルトでインストールを行えばよい
#Install Laravel
command promptを起動し、以下コマンドを入力する
composer global require "laravel/installer"
path setting
system settingで以下pathを設定する
%APPDATA%\Composer\vendor\bin
#Create Laravel project
1. create laravel project
IISで指定した、アクセス可能なVirtual Directoryに移動する
そこで、command promptを起動する
laravel new sample_app
完了するまで時間がかかります。
完了すると、Laravelのパッケージが作成されます。
2. node.js
laravelはnode.jsを使います
それをインストールします。
まず、対象のプロジェクトに移動し、そこでcommand promptで以下のコマンドを実行する。
npm install && npm run dev && npm run watch
3. resolve dependency
packageの依存問題を解決する
composer install
4.application encryption key
Laravelを起動させるために、encryption keyを指定する必要がある
php artisan key:generate
5. install phpunit coverage
以下、コマンドを実行する
composer require --dev phpunit/php-code-coverage
6. test coverage output
test coverageをhtmlで出力できるようにする
すでにXDEBUGを設定しているため、それをつかって実行できるようにする
composer.jsonを編集する
scriptsで以下2つのコマンドを追加する
test:coverage-xml
test:coverage-html
実際に実行してみる
composer test:coverage-html
すると、storageにカバレッジレポートが作成される
htmlをひらくと、以下のようにカバレッジレポートが確認できる
7. DB setting
対象のprojectが先ほど構築したMariaDBと接続できるようにする
.envで、DBに関する設定を行う
DBのHost,Portが異なる場合、変更する
DB_DATABASEは、先ほどproject名と同じdatabaseを作成したので特に変更は必要ないが、別のdatabaseを使う場合、変更する
DB_USERNAME,DB_PASSWORDは作成したDBのユーザを指定する。
このユーザーはTABLEの作成権限などが必要となる。