web-dev-qa-db-ja.com

Mochaは1つのテストファイルのみを実行しています

Mochaテストは正常に機能していましたが、新しいモジュール(およびテスト)を追加すると、mochaはすべてのテストファイルの実行を停止し、1つの新しいテストのみを実行するようになりました。

私のテストスクリプト:

env NODE_PATH=$NODE_PATH:$PWD/src mocha --recursive --compilers js:babel-core/register src/**/*.test.js --require babel-polyfill

私のプロジェクトは次のように構成されています。

/src
  /components
    /component-name
      index.js
      component.js
      component-name.test.js
      style.scss
  /util
    /module-name
      index.js
      module-name.test.js
  /some-other-module
    index.js
    some-other-module.test.js

/components/utilでいくつかのテストを行い、すべてが正常に機能しましたが、モジュールを/src/some-other-moduleなど)に.test.jsファイルを入れて配置するとMochaはそのテストファイルのみを実行し、他のファイルは実行しません。

13
SimpleJ

シェルによって解釈されないように、Mochaに渡すパターンを一重引用符で囲みます。'src/**/*.test.js'

何が起こるかというと、引用符がないと、シェルはそのパターンを拡張しようとして成功します。拡張の結果はsrc/some-other-module/some-other-module.test.jsであり、これがMochaに渡されます。

そのファイルを作成する前に、シェルはパターンを展開しようとしましたが、成功せず、パターンをそのままにしました。そのため、モカはsrc/**/*.test.jsを取得しました。これは、モカ自体がグロブとして解釈しました。

不思議に思うかもしれませんが、Bashでは、globstarオプションがオンになっていない限り、***と同等です。

16
Louis