2

モカを使用して単体テストを実行するノードアプリに取り組んでいます。

このコマンドを実行すると:

mocha --compilers coffee:coffee-script --reporter spec ./test/unit/*-test.coffee

次のエラーが表示されます。

ERROR: Unknown option --compilers

それは間違いなくコンパイラオプションを持っているので、モカは混乱しているようです。このエラーは、プロジェクトに新しいファイルを追加したときに発生し始めました。モカに生成させることができる唯一の出力です。--debug は何もしません。

personというパッケージがインストールされているとしましょう。このパッケージをグローバルに構成して、構成済みのオブジェクトをプロジェクトのどこにでもインポートできるようにしたいと考えています。そのために、person をインポートし、それをドライバーとして構成してから、再度エクスポートします。

ただし、(Car.coffee または Car-test.coffee のいずれかで) インポートすると、mocha は上記のエラーで失敗します。

ドライバーコーヒー

driver = require 'person'
driver.setSkill "Drive"

module.exports = driver

カーコーヒー

driver = require './driver'
...

カーテスト.コーヒー

driver = require '../../src/driver'
...

コーヒーを使用してコンパイルし、ノード プロジェクトを実行している場合、これは正常に機能することに注意してください。そこにインポートしても問題ありません。しかし、mocha で実行すると、ファイルをインポートすると失敗します。

エラーを正確に特定することはできません。モカのバグのように思えますが、インポートしたオブジェクトと同じオブジェクトをエクスポートすることで「悪い」ことをしている可能性があり、ノードはより寛容ですか?

モカの最新バージョン(1.13.0)を使用しています。ありがとう!

編集:

これはエラーを修正せず、構文的に理想的ではありません。

person = require 'person'

class driver
  constructor: ->
    person.setSkill "Drive"
    @person = person

module.exports = driver

単純なオブジェクトでラップするだけでは機能しないことに注意してください。

編集2:

動作しない他のものは次のとおりです。

configure-driver.coffee

configureDriver = (person) ->
  person.setSkill "Drive"

module.exports = configureDriver

カー.コーヒー

driver = require('./configure-driver')(require 'person')

Mocha は以前と同じエラーをスローします。

4

2 に答える 2

2

少し遅れているかもしれませんが、誰かの役に立てば幸いです (これを追跡するために mocha のソース コードを 1 時間ページングしました)。

代わりにそのコマンドを試してください (重要なビットは の後の等号です--compilers):

mocha --compilers=coffee:coffee-script --reporter spec ./test/unit/*-test.coffee

grunt-mocha-istanbulと coffeescript テスト定義grunt testを使用して新しいタスクを作成しようとしているときに、そのバグに遭遇しました。奇妙なことに、コマンドをシェルで直接実行すると機能しましたが、grunt タスクを使用すると、あなたと同じエラーが発生しました。

于 2014-11-26T02:11:29.980 に答える