2015-02-01開催したAngularJSテストソン用の課題です
generator-angular-fullstackをベースに作成してあります。
アプリケーションの仕様はドキュメント(wiki)を参照してください。
テストコードだけでなく、テストしやすいようにリファクタや構成も弄ってもらってかまいません。
# 使用するツールをグローバルにインストール
npm i -g mocha bower grunt-cli protractor istanbul yo karma-cli generator-karma generator-mocha generator-angular-fullstack
git clone https://github.com/MSakamaki/AngularTestSonSample.git -b hackathon/20150201 hack20150201
cd hack20150201
npm install
grunt serve
├── Gruntfile.js
├── README.md
├── bower.json
├── client # karmaで行う単体テストはこのディレクトリにあります。grunt testで動作します
│ ├── app
│ ├── assets
│ ├── bower_components
│ ├── components
│ ├── favicon.ico
│ ├── index.html
│ └── robots.txt
├── e2e # protractorで行うe2eテストはこのディレクトリにあります。
│ ├── README.md
│ ├── acceptance_test # grunt test:acceptで動作します
│ ├── components
│ └── functional_test # grunt test:e2eで動作します
├── karma.ci.conf.js
├── karma.conf.js
├── node_modules
│ └── ....
├── package.json
├── protractor
│ └── .. # protractorの設定ファイル
├── report
│ ├── coverage # カバレッジレポート
│ └── plato # コードメトリクス
└── server
├── api # API設定
├── app.js
├── auth
├── components
├── config
├── routes.js
├── user
└── views
- 開発
serve
開発用アプリを立ち上げるserver
serveのalias
- テスト
test
クライアントの単体テストtest:client
test の aliastest:e2e
End to Endのテストtest:accept
受け入れテスト
- レポート
report:make
レポート生成report:view
レポートを見るreport:ci
XMLレポートを生成
- ビルド
build
リリース用ファイルを作り出す。
- 追加オプション
env
デフォルトunit
--env=unit
単体テスト用の設定ファイルを使う--env=it
結合テスト用の設定ファイルを使う--env=releace
リリース用の設定ファイルを使うci
デフォルトfalse
、レポート等のアウトプットがCI連携用の処理になる--ci=true
CI環境用の処理を行う
- 継承関係
protractor.conf.js
├── protractor.acceptable.conf.js
│ └── protractor.acceptable.ci.conf.js
└── protractor.functional.conf.js
└── protractor.functional.ci.conf.js
- protoractor全体の設定を定義している
- protractor.conf.jsを継承
- 受け入れテスト用のテストコードの読み取りを行う。
- protractor.acceptable.conf.jsを継承
- レポート出力をXMLファイルに変化させる
- protractor.conf.jsを継承
- 機能テスト用のテストコードの読み取りを行う。
- protractor.functional.conf.jsを継承
- レポート出力をXMLファイルに変化させる