Hãy nhìn vào những người lạc quan mô-đun bằng Substack và nconf từ Flatiron. Rất nhiều thử nghiệm của tôi phụ thuộc vào các tham số bên ngoài và mô-đun nconf và tối ưu giúp dễ dàng tải các tùy chọn cấu hình từ tệp json
Trong lệnh kiểm tra của bạn, hãy chuyển đường dẫn đến tệp config.json
lệnh kiểm tra
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
}
}
Thay thế
Một mẫu khác mà tôi đã sử dụng gần đây là mô-đun cấu hình . Bạn có thể chỉ định một ./config/default.yml
tệp để chạy thường xuyên và một ./config/test.yml
tệp để kiểm tra.
Khi chạy bộ thử nghiệm của bạn, hãy xuất NODE_ENV = test và mô-đun cấu hình sẽ tải test.yml
Trong mã của bạn, có thể dễ dàng truy cập đối tượng cấu hình
var config = require('config')
var apiKey = config.api.key
Một cách dễ dàng để đặt kiểm tra NODE_ENV = là chạy các kiểm tra của bạn với một tệp makefile. Chạy tất cả các thử nghiệm của bạn thông qua make test
. Để chạy một thử nghiệm duy nhất, hãy thực thimake one NAME=test/unit/sample-test.js
Makefile mẫu
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