こうこく
作 ▸
改 ▸

MochaとChaiでなんでもテスト ~準備編~

諸事情にて初心者向け!

Node.js使ってみて、Mochaの使いやすさが気に入ったので、何本か書いてみる予定です。

今回はテストプログラム用のプロジェクトを作成して、MochaとChaiをインストールするだけです。

もくじ

前書き

このシリーズでは、Node.jsの自動テストフレームワーク Mocha (+ Chai) で色んなものをテストする方法を書いていくつもりです。

自動化に適したプログラムの作り方とか、モジュールの分割方法とかについては書きません。むしろ、テスト対象のプログラムはJavaScriptでなくても一向にかまいません。

とにかく Node.js + Mocha + Chai で作ったテストプログラムで、色んな入力と出力をテストすることを目的とします。

あと、書いてる人は初心者です。初心者が初心者に教えるために書いてます。すみません。

というわけで、次項から開始です。

PCにNode.jsをインストール

何はともあれNode.jsが必要です。

細かい手順は割愛しますが、この記事は、Windows10 (64bit) に Node.js 10.15.3 をインストールしたことにして進めます。npm も一緒にインストールしてる前提です。

Node.jsのインストールフォルダは、便宜上 C:\nodejs\10.15.3 とします。

パス通ってる?

ここからはコマンドプロンプトで node および npm コマンドを使っていくことになるので、念のためパスが通ってるか確認しておきます。

もし「パスが通ってる」の意味がわからない人は、「コマンドが使える」という意味だと思っててください。厳密には違いますが、そういうことにしておいてください。

コマンドプロンプトを立ち上げて、以下コマンドを実行します。

node -v
npm -v

これで v10.15.3 とか 6.9.0 とか、両方ともバージョンが表示されればパスは通ってます。

もし 「'node' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」「'npm' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 みたいなのが表示されたら、パスが通ってません。

node が使えないなら、たぶん npm も使えないと思います。片方だけ使えるというのは想定してませんが、片方でも使えなかったら、以下の操作を行いましょう。


パスを通すには、Node.jsをインストールしたフォルダ (node.exe とか npm が入ってる) を環境変数 PATH に追加する必要があります。

しかし開発用PCなんかだと、永続的にパスを通しちゃうと面倒なことになるかもです。それに、あなたのPCの PATH を書き換えていいかどうか判りません。なので、ここでは一時的にパスを通す方法を使います。

コマンドプロンプトで以下コマンド実行すると、一時的にパスが通ります。

set PATH=C:\nodejs\10.15.3;%PATH%

C:\nodejs\10.15.3 というのは、前述した通り、この記事におけるNode.jsのインストールフォルダです。違うところなら適宜変更してください。

すると、コマンドプロンプトで node -v npm -v を実行した時、ちゃんとバージョン番号が表示されるようになるはずです。

この状態は、コマンドプロンプトを閉じるまでは持続します。 閉じちゃったら、また同じ方法でパスを通してください。


万が一上記の操作をしてもコマンドが使えないままだったら、set PATH コマンドを実行して、現在の環境変数 PATH の中身を確認してください。

先頭にNode.jsのインストールフォルダが入ってますか? 入ってなかったら、やり方が間違ってます。入ってるのにダメなら、たぶんフォルダが間違ってます。node.exe があるフォルダを指定してください。

というわけで、nodenpm にパスが通った前提で以下進めます。

テストプログラム用のプロジェクトを作る

Node.jsでテストプログラムを作るために、それ用のフォルダを用意していきます。

まず、適当な場所にカラのフォルダを作ります。フォルダはあとで別の場所にカット&ペーストとかで移動しちゃっても大丈夫なので、どこでもOKです。ここでは便宜上 C:\path\to\mytest とします。

フォルダ作ったら、コマンドプロンプトで cd コマンド使って、そこまで行きます。

cd C:\path\to\mytest

そしたら以下コマンドを実行します。

npm init -y

コマンドを実行しても特に何も表示されませんが、完了後、フォルダの中に以下の package.json ファイルが作成されてるはずです。

package.json
{
  "name": "mytest",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

これで、当該フォルダが npm の管理下に置かれました。以降はこのフォルダを『プロジェクト』と呼びます。

npmでMochaとChaiをインストール

作成したプロジェクト内に、MochaとChaiをインストールしていきます。

Mochaをインストール

テストフレームワーク『Mocha』をインストールします。

開いたままのコマンドプロンプトで以下コマンドを実行すると、プロジェクト内にMochaの最新バージョンがインストールされます。インストールには少し時間がかかるかもなので、結果が表示されるまで待ちましょう。

コマンド
npm install mocha --save-dev
実行結果
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN mytest@1.0.0 No description
npm WARN mytest@1.0.0 No repository field.

+ mocha@6.1.4
added 115 packages from 509 contributors and audited 224 packages in 13.45s
found 0 vulnerabilities

実行結果にWARNとか出てると思いますが、これは package.jsondescriptionrepository が設定されてないから出てるだけです。害は無いので気にしないでください。

インストール完了すると、プロジェクト内に node_modules フォルダと package-lock.json ファイルが作成されてるはずです。

いまインストールしたMochaは、node_modules 内に入ってます。node_modules 内には mocha 以外にもいっぱいフォルダができてますが、それらは全部 mocha の依存パッケージです。

Chaiをインストール

テスト結果の検証 (アサーション) に便利なツール『Chai』をインストールします。

開いたままのコマンドプロンプトで以下コマンドを実行すると、プロジェクト内にChaiの最新バージョンがインストールされます。

コマンド
npm install chai --save-dev
実行結果
npm WARN mytest@1.0.0 No description
npm WARN mytest@1.0.0 No repository field.

+ chai@4.2.0
added 7 packages from 20 contributors and audited 232 packages in 1.842s
found 0 vulnerabilities

ここまでのpackage.json

念のため、ここまでのインストール内容を確認しておきます。

npm install--save-dev オプションをつけてインストールしたパッケージは、package.jsondevDependencies に書き込まれます。なので、現在の package.json の内容は以下の通りになってるはずです。

package.json
{
  "name": "mytest",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "chai": "^4.2.0",
    "mocha": "^6.1.4"
  }
}

mochachai のバージョンは違うかもです。この記事ではバージョンを指定せずに mochachai をインストールしてるので、その時点での最新バージョンがインストールされるからです。

無いと思いますが、もし今後 mochachai に後方互換性が無いアップデートが入った場合は、インストール時のコマンドで以下のようにバージョン指定してみてください。そしたら、この記事と同じように動くと思います。

npm install mocha@6.1.4 --save-dev
npm install chai@4.2.0 --save-dev

ここまでのプロジェクト

ここまでで、プロジェクトのフォルダ内は↓こんな感じになってるはずです。

 mytest
  ├ node_modules
  │  ├ .bin
  │  ├ chai
  │  ├ mocha
  │  └ (その他、mochaとchaiの依存パッケージたち)
  ├ package.json
  └ package-lock.json

続きます

以上で準備編は終わりです。次回は基本編です。

この記事に何かあればこちらまで (非公開)