FlatironのSubstackとnconfによるオプティミストモジュールを見てください。私のテストの多くは外部パラメーターに依存しており、optimistモジュールとnconfモジュールを使用すると、jsonファイルから構成オプションを簡単にロードできます。
テストコマンドで、config.jsonファイルへのパスを渡します
テストコマンド
mocha test/api-test.js --config=/path/to/config.json --reporter spec
api-test.js
var path = require('path')
var fs = require('fs')
var assert = require('assert')
var argv = require('optimist').demand('config').argv
var configFilePath = argv.config
assert.ok(fs.existsSync(configFilePath), 'config file not found at path: ' + configFilePath)
var config = require('nconf').env().argv().file({file: configFilePath})
var apiConfig = config.get('api')
var apiKey = apiConfig.key
config.json
{
"api": {
"key": "fooKey",
"host": "example.com",
"port": 9000
}
}
代替案
私が最近使用しているもう1つのパターンは、configモジュールです。./config/default.yml
定期的に実行する./config/test.yml
ファイルとテスト用のファイルを指定できます。
テストスイートを実行するときに、NODE_ENV = testをエクスポートすると、構成モジュールが読み込まれます。 test.yml
コードでは、構成オブジェクトに簡単にアクセスできます
var config = require('config')
var apiKey = config.api.key
NODE_ENV = testを設定する簡単な方法は、メイクファイルを使用してテストを実行することです。を介してすべてのテストを実行しますmake test
。単一のテストを実行するには、make one NAME=test/unit/sample-test.js
サンプルメイクファイル
MOCHA?=node_modules/.bin/mocha
REPORTER?=spec
GROWL?=--growl
FLAGS=$(GROWL) --reporter $(REPORTER) --colors --bail
test:
@NODE_ENV="test" \
$(MOCHA) $(shell find test -name "*-test.js") $(FLAGS)
one:
@NODE_ENV="test" \
$(MOCHA) $(NAME) $(FLAGS)
unit:
@NODE_ENV="test" \
$(MOCHA) $(shell find test/unit -name "*-test.js") $(FLAGS)
integration:
@NODE_ENV="test" \
$(MOCHA) $(shell find test/integration -name "*-test.js") $(FLAGS)
acceptance:
@NODE_ENV="test" \
$(MOCHA) $(shell find test/acceptance -name "*-test.js") $(FLAGS)
.PHONY: test
env KEY1=YOUR_KEY1 KEY2=YOUR_KEY2 mocha test