2
我嘗試將mocha與coffeescript和chai結合使用。包含測試每個文件之前,我想包括以下文件:在每次測試之前都無法獲得所需文件
測試/ _helper.coffee
path = require 'path'
AppDir = path.resolve("#{__dirname}/../src/app")
chai = require('chai')
should = chai.should()
factories = require('chai-factories')
chai.use(factories)
這是爲了讓我有機會獲得APPDIR variabel。這樣當我想要一個文件時,我不必指定應用程序目錄的完整路徑。
測試/應用/ setup-test.coffee
describe 'Setup instance', ->
it 'should be a object', ->
setup = require "#{AppDir}/setup"
setup.should.be.a('object')
我嘗試以下設置:
新增_hellper.coffee摩卡命令行選項,如下所示:
./node_modules/.bin/mocha --require coffee-script --require test/_helper.coffee --compilers coffee:coffee-script --recursive --reporter spec test
等:
./node_modules/.bin/mocha --require coffee-script --compilers coffee:coffee-script --recursive --reporter spec test/_helper.coffee test
我嘗試了正常需要setup-test.coffee:
require '../_helper.coffee'
什麼都法我用,我得到以下錯誤,如果我運行測試:
Setup instance
1) should be a object
✖ 1 of 1 test failed:
1) Setup instance should be a object:
ReferenceError: AppDir is not defined
at Context.<anonymous> (/Users/ivotrompert/Dropbox/projects/nodejs/getWallpapers/test/app/setup-test.coffee:8:28)
at Test.Runnable.run (/Users/ivotrompert/Dropbox/projects/nodejs/getWallpapers/node_modules/mocha/lib/runnable.js:184:32)
at Runner.runTest (/Users/ivotrompert/Dropbox/projects/nodejs/getWallpapers/node_modules/mocha/lib/runner.js:300:10)
at Runner.runTests.next (/Users/ivotrompert/Dropbox/projects/nodejs/getWallpapers/node_modules/mocha/lib/runner.js:346:12)
at next (/Users/ivotrompert/Dropbox/projects/nodejs/getWallpapers/node_modules/mocha/lib/runner.js:228:14)
at Runner.hooks (/Users/ivotrompert/Dropbox/projects/nodejs/getWallpapers/node_modules/mocha/lib/runner.js:237:7)
at next (/Users/ivotrompert/Dropbox/projects/nodejs/getWallpapers/node_modules/mocha/lib/runner.js:185:23)
at Runner.hook (/Users/ivotrompert/Dropbox/projects/nodejs/getWallpapers/node_modules/mocha/lib/runner.js:205:5)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
這裏是我的MAKE文件,如果有人想知道我是怎麼運行測試:
的Makefile
REPORTER = spec
DEFAULT_COMMAND = ./node_modules/.bin/mocha --require coffee-script --ui bdd --compilers coffee:coffee-script --recursive --growl --reporter
check: test
test:
@NODE_ENV=test $(DEFAULT_COMMAND) $(REPORTER)
test-watch:
@clear
@NODE_ENV=test $(DEFAULT_COMMAND) $(REPORTER) --watch
coverage:
@jscoverage --no-highlight src src-cov
@SRC_COV=1 $(DEFAULT_COMMAND) html-cov > coverage.html
@rm -rf src-cov
ifeq ($(shell uname), Darwin)
@open coverage.html
else
@xdg-open coverage.html &> /dev/null &
endif
.PHONY: test
可有人請幫助我,謝謝。
我不使用這個爲一個文件,但我想用它的多文件,所以這是一個完美的解決方案。謝謝 – 2012-08-14 15:19:20