WindowsでMochaテストフレームワークを使う

JavaScriptの学習メモ。

今日は「関数型プログラミングの基礎 JavaScriptを使って学ぶ」の第9章を読んでみます。

Mochaテストフレームワークを使う

(p.320)

本書はMochaというテストフレームワークを使用しています。

Mochaは振舞い駆動型のテストフレームワークであり、Node.jsでの単体テストを自動化します。

Mochaとは?

Mocha 使い方」で検索すると、いろいろ参考情報がヒットします。

(公式サイト) Mocha – the fun, simple, flexible JavaScript test framework

f:id:jsstudy:20170416090143p:plain
pz-linkcard: Incorrect URL specification.(url=)

ソフトウェア開発におけるテストとは、ソフトウェアの振舞いが想定した通りであるかを検証することです。

ソフトウェアのサブルーチンを取り出してテストする「単体テスト/ユニットテスト」と、ソフトウェア全体の挙動をテストする「結合テスト」があります。

mocha・chaiはこのうちの「単体テスト」を対象としたツールです。

Mochaは、JavaScriptの単体テストを行なうツールです。

Node.jsの設定

Windows7へMochaをインストールする前に、使用するNode.jsのバージョンを指定します。(本書では、v0.12.0)

  • nvmの場合 「nvm use 0.12.0 32」(32ビット版を使用している場合)
  • nodistの場合 「nodist 0.12.0」

とコマンドを打ちます。

(参考)

フォルダの移動

(前回、GitHubからサンプルコードを取得した後の状態から、作業を行ないます。)

Git for WindowsでGitHubリポジトリをクローンする – JavaScript勉強会

学習用に作成した「functionaljs」をコマンドプロンプトで開きます。

Mochaのインストール

MochaのインストールにはnpmというNode.js用のパッケージマネージャを使います。

このとき、次のように-gオプションを指定することで、カレントディレクトリ以外からでもグローバルにMochaを実行できるようになります。

gulpのインストール

もしテストの実行にgulpを使いたければ、次のコマンドでgulpをインストールします。

gulpとは、Node.jsのビルドシステムです。

ビルドシステムを使えば、テストやドキュメント生成などの様々な作業を自動化できます。

最後に、テストの実行に必要となる全てのパッケージをインストールするために、次のコマンドを実行します。

このコマンドはカレントディレクトリに存在するpackage.jsonファイルを読み込み、その情報をもとにパッケージをインストールします。

そのため必ずfunctionaljsディレクトリで実行してください。

自分の作業フォルダ(ここでは「functionaljs」)で実行します。

Mochaの動作確認

インストールされたMochaのバージョンを確認してみます。

f:id:jsstudy:20170416143418p:plain

Windowsで、mochaのパスが通ってないようです。

Windowsは面倒くさいですね><)

Mochaのパス設定(batファイルで代用)

検索したら、解決策が紹介されていました!

node.js + ローカルインストールmochaをWindowsで使う – Qiita

npm install mocha でローカルインストールする。

多くの解説サイトでは、この直後に「mochaでテストを実行可能」って
書いてあるけど、それはLinux環境前提な。

Windows環境の場合は、パスが通っていないのにで、NG。

実行ファイルが「node_modules.bin\mocha」辺りにあるので、
「node_modules.bin\ 」をNODE_PATH環境変数に設定するか、もしくは、
以下を記述したバッチファイル mohca.bat を test フォルダの上位に置いておく。

@node_modules\.bin\mocha %1 %2 %3 %4 %5 %6 %7 %8 %9

手動でパスを設定するのが面倒なので、上記の方法でバッチファイルを設置してみます。(上記のページでは「mohca.bat」と誤植になってるようです。=cとhが逆)

  • 「functionaljs」フォルダに「mocha.bat」というファイルを作る。
  • 「mocha.bat」の中身は「@node_modules\.bin\mocha %1 %2 %3 %4 %5 %6 %7 %8 %9」という内容にする。

もう1度、Mochaのバージョンを確認してみます。

f:id:jsstudy:20170416144517p:plain

今度はうまく行きました!

インストールされているMochaのバージョンは、1.21.5でした。

Gulpの動作確認

Mochaと同様に、Gulpのバージョンも確認してみましょう。

GulpもWindowsでパスが通っておらず、動作しませんでした。

Gulpのパス設定(batファイルで代用)

Mochaと同様に、バッチファイルを設置して対処してみます。

  • 「functionaljs」フォルダに「gulp.bat」というファイルを作る。
  • 「gulp.bat」の中身は「@node_modules\.bin\gulp %1 %2 %3 %4 %5 %6 %7 %8 %9」という内容にする。

もう1度、Gulpのバージョンを確認してみます。

インストールされているGulpのバージョンは3.9.1でした。

npmはWindowsのパスを書き換えない?

てか、こんな応急措置で進めて良いのか?正直よく分かりません。

MochaやGulpをnpmでインストールするとき、どこからでも呼び出せるようにするつもりで、グローバルオプションを付けてインストールしたのに、これじゃ意味ないですね?orz

=バッチファイルが置かれている場所(作業フォルダ)の中でしか、コマンドが実行できない。

とりあえず、学習目的ではバッチファイルを設置して対処しておきました。

(先々、問題が出るようだったら、ちゃんとパスを設定してみます。)

以上、WindowsでJavaScriptのテストを実行する環境を準備しました。

npmとは?

MEANスタックで始めるWebアプリ開発入門(2):いまさら聞けないNode.jsの基礎知識とnpm、Gulpのインストール (2/2) – @IT

「npm」とはNode.jsのモジュールを管理するためのツールです。

Node.jsにはさまざまなモジュールが公開されており、npmを使うことで簡単にインストールできます。

また、自分でモジュールを作成して公開する場合にもnpmを使用します。

現在インストールされているnpmのバージョンを確認してみます。

f:id:jsstudy:20170416145713p:plain

npmのバージョンは、2.5.1でした。

gulpとは?

MEANスタックで始めるWebアプリ開発入門(2):いまさら聞けないNode.jsの基礎知識とnpm、Gulpのインストール (2/2) – @IT

GulpとはNode.js上で動くタスク自動化のためのビルドツールです。

ソースファイルのminify(圧縮)やCoffeeScriptのコンパイルなどを実行できます。

Gulpの特徴としては、タスク定義をシンプルなJavaScriptで記述し、動作するのが特徴です。

便利なツールがいろいろ用意されているので、使い方に慣れていきたいです。

投稿日:April 16th 2017

元記事:http://jsstudy.hatenablog.com/entry/functionaljs-9-mocha-on-windows

– PR –
– PR –