flatiron의 Substack과 nconf 의 optimist 모듈을 살펴보십시오 . 많은 테스트가 외부 매개 변수에 의존하며 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
}
}
대안
최근에 사용한 또 다른 패턴은 구성 모듈입니다. ./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