我正在开发一个使用 mocha 运行单元测试的节点应用程序。
当我运行这个命令时:
mocha --compilers coffee:coffee-script --reporter spec ./test/unit/*-test.coffee
我收到此错误:
ERROR: Unknown option --compilers
mocha 似乎很困惑,因为它肯定有编译器选项。当我向项目添加新文件时,此错误开始发生。这是我可以让 mocha 生成的唯一输出。--debug 什么都不做。
假设我安装了一个名为 person 的包。我想全局配置这个包,以便我可以在项目的任何地方导入配置的对象。为此,我导入人员,将其配置为驱动程序,然后再次导出。
但是,当我导入它时(在 Car.coffee 或 Car-test.coffee 中),摩卡咖啡因上述错误而失败。
司机.咖啡
driver = require 'person'
driver.setSkill "Drive"
module.exports = driver
汽车.咖啡
driver = require './driver'
...
汽车测试.coffee
driver = require '../../src/driver'
...
请注意,如果我只是用咖啡编译并运行节点项目,这可以正常工作。在那里导入它没有问题。但是当我使用 mocha 运行时,如果我导入文件会失败。
我无法确定错误。它看起来就像 mocha 中的一个错误,但也许我通过导出我导入的同一个对象来做一些“坏”的事情,而 node 只是更宽容?
我正在使用最新版本的 mocha (1.13.0)。谢谢!
编辑:
这并不能修复错误,并且在语法方面也不是理想的:
person = require 'person'
class driver
constructor: ->
person.setSkill "Drive"
@person = person
module.exports = driver
请注意,仅将其包装在普通对象中是行不通的。
编辑2:
这是其他不起作用的东西:
配置-driver.coffee
configureDriver = (person) ->
person.setSkill "Drive"
module.exports = configureDriver
汽车.咖啡
driver = require('./configure-driver')(require 'person')
Mocha 抛出与以前相同的错误。