Giter VIP home page Giter VIP logo

test-boilerplate's Introduction

これはテストを書くための鋳型です Build Status Coverage Status

  • テストコードを書くための鋳型であり、正しいテストコードを書くためのツールではありません
  • ツッコミ・改良、自由にどうぞ

Quick Start

Node.js バージョン見てます。>=6.0.0でしか動きません

Installation

$ yarn

yarn 入れてない人は適宜 brew install yarn などしてください。
npm i でも入ります。shrinkwrap 入れてないけど動くっちゃ動くと思う

Testing

Single Run

$ yarn test

テストファイルを対象にして Chrome が起動してテストが走る。終わると閉じる
.tmp/coverage/report 配下にカバレッジ計測後のhtmlとか残る

Watching files

$ yarn test:watch

テストファイルを監視しながらテストが走る。書き換えと同時にテストが走る


Stack

JavaScript

  • JavaScript bundler : webpack
    • babel-loader
    • eslint-loader 参照:.eslintrc
  • Babel :
    • es2015
    • plugins
      • babel-plugin-espower : power-assert のメッセージをログに掲出できる
      • babel-plugin-istanbul : カバレッジ計測のための記述をファイルに残せる
      • ※ いずれも process.env.NODE_ENV=test でのみ使う。参照:.babelrc

dep: jQuery 1.12 ※ 用途に合わせてください

Testing Tools

  • Karma : テストランナー
    • karma-plugins :
      • chrome-launcher
      • coverage
      • mocha
      • mocha-reporter
      • power-aseert
      • sinon
      • webpack
  • mocha : テストフレームワーク
  • sinon : テストダブルツール / APIに依存する部分を補填するため、stub, spy, fakeServer など提供
  • power-assert : アサーション ※ Node.js の assert API が貧相なため

設定: karma.conf.js 参照。
なぜChromeが起動するのか。PhantomJS でも良かったが JavaScriptエンジンを疑問視。
そもそもテストのためのJavaScriptが動かないを避けるため=いちいちテストのために babel 周り肥えさせたくない。


CI

.travis.yml

  • distribution : trusty を指定(じゃないとChrome入れられない)
  • sudo で Chrome 安定版を apt-get
  • yarn install 前にCIコンテナにない仮想ディスプレイ起動とChromeのパス通す
    • Travis に yarn がデフォルトで入ったので yarn.lock あればインストール自動はスクリプトに要らない
  • yarn test 走る
  • 成功すれば、node-coveralls でカバレッジをCoverallsに投げつける
    • .coveralls.yml にリポジトリtokenが必要です

Structure

主要なファイルとか。

├── .babelrc # babel 設定ファイル
├── .eslintrc # eslint 設定ファイル
├── .travis.yml # travis
├── .coveralls.yml # Coveralls tokenのためのファイル
├── app
|  └── index.html
├── gulp # gulp ファイル=タスク
├── gulpfile.js # gulp エントリーだけのファイル
├── karma.conf.js # karma 設定ファイル
├── package.json
├── src
|  ├── js # JavaScript ソースファイル
|  └── scss # Scss ソースファイル
├── test # テスト用 JavaScript ファイル
├── webpack.config.js # webpack設定ファイル
├── webpack.entries.js # webpackエントリーファイル外出し
└── yarn.lock

テストと関係ないもの

  • StaticServe : BrowserSync
  • Scss compile : gulp-sass (= node-sass)

Serve

$ yarn start

app を起点にして静的サーバ起動。
src/js 配下を監視、src/scss 配下を監視。
process.env.NODE_ENV=development

build

$ yarn build

app 配下に生成物をビルド。
process.env.NODE_ENV=production

test-boilerplate's People

Contributors

tkdn avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.