2016-11-22 27 views
1

すべてのソースファイルがテストコードと並んでいるテスト環境を作成しようとしています。これは、テストコードなしでどのファイルを追跡するのが容易であるためです。以下は、実行がmocha、node_modulesフォルダを無視する方法

built/api/a.js 
built/api/a-test.js 
built/api/b.js 
built/api/b-test.js 
built/index.js 
built/index-test.js 
built/node_modules/... 
built/package.json 
src/api/a.js 
src/api/a-test.js 
src/api/b.js 
src/api/b-test.js 
src/index.js 
src/index-test.js 
src/package.json 
package.json 

を構築した後、私のディレクトリの一例である私は、以下の「NPMテスト」の実行によって、私のテストを実行するつもりです私のpackage.jsonのコンテンツです:

{ "name": "sample", 
    "scripts": { 
    "build": "babel ./src -d ./built && cd built && npm install", 
    "test": "mocha built/**/*-test.js" 
    }, 
    "devDependencies": { 
    "babel-cli": "^6.18.0", 
    "babel-core": "^6.18.0", 
    "mocha": "^3.1.2" 
    } 
} 

私の質問はどのようにあります私は...偶然名前が(13+ヶ月!?)-test.js

+1

MochaはOOBをサポートしていませんが、良いアイデアのカップルです - https://github.com/mochajs/mocha/issues/1577 – tiblu

+1

一般に、ビルドステップの前にテストを実行します –

答えて

0

相手に少し遅れで終了したフォルダnode_modulesでこれらのファイルをスキップすることができますが、

モカはこれをサポートしていません。ボのバツ。あなたはglob-fuを使い、ちょっとファンキーになる必要があります。あなたのコマンドライン上でこのような何かを実行するトリックを行う必要があります。

mocha './built/{,!(node_modules)/**}/*-test.js' 

グロブパターン{,!(node_modules)/**}

は、現在のディレクトリ内、または現在のディレクトリの任意のサブディレクトリに関係なく、深さのエントリを取ると言いますただし、./build/node_modulesに根ざすものを除きます。単一引用符が本質的であることを

OS XまたはLinuxツゲにを必要としていました。 (引用符で囲まれていない)ままのままにしたり、二重引用符で囲んだ場合は、内部ではなく​​3210であるmochaの代わりにシェルのグロブを取得しますので、結果が期待できないでしょう...非典型的なシェル。

Windowsシェルは二重引用符のみをサポートしています...コマンドライングロビングはありませんので、Windowsではこの引用符を引用符で囲まないでください(ただし、エラーはありません)引用符それ)。

より良い、より多くのプラットフォームに依存しない方法は、このように、あなたのtest/mocha.optsファイルにグロブパターンを置くために、次のようになります。

--require ./test/setup.js 
--colors 
--inline-diffs 
./built/{,!(node_modules)/**}/*-test.js 

乾杯!

関連する問題