次のような Mocha テストファイルがあります。
var expect = require('chai').expect
var muting = require('../muting')
describe('muting', function () {
describe('init()', function () {
it('should inject an object into Twitter', function () {
var Twitter = 'Twitter'
muting.init(Twitter)
expect(muting.Twitter).to.equal(Twitter)
})
})
})
CLIからmocha
を実行すると、テストが正常に実行されます。
standard
( JavaScript Standard Style の実行可能ファイル)を実行すると、Mochaのフレームワーク関数で次のようなエラーが発生します。
standard: Use JavaScript Standard Style (https://github.com/feross/standard)
c:\..\test\index.js:5:0: 'describe' is not defined.
c:\..\test\index.js:6:2: 'describe' is not defined.
c:\..\test\index.js:7:4: 'it' is not defined.
Standardがこれらの機能について文句を言わないようにする最もクリーンな方法は何ですか?
実際には、package.jsonのすべてのグローバル変数をリストする必要はありません。
代わりに、次のように環境を指定できます。
"standard": {
"env": [ "mocha" ]
}
ソース: 公式のESLint設定ドキュメント 。
私は自分の.eslintrc
そしてenvセクションにmochaを追加します:
...
"env": {
"commonjs": true,
"node": true,
"mocha": true
},
...
このように私のpackage.json
ファイルはクリーンに保たれ、eslintのvscodeプラグインはそれをよりよく理解します
eslintのコメント設定は単一のファイルに対してはうまく機能しますが、標準の package.json
globals
私のプロジェクトでこれを行うための設定。例えば。
{
"name": "my-package",
"version": "1.0.0",
"standard": {
"globals": [
"describe",
"context",
"before",
"beforeEach",
"after",
"afterEach",
"it",
"expect"
]
}
}
eslintの場合、test_file.jsの先頭でこの行を使用します
/* eslint-env mocha */
web workers と同じソリューションを使用できます
/* global describe it */
var expect = require('chai').expect
var muting = require('../muting')
describe('muting', function () {
describe('init()', function () {
it('should inject an object into Twitter', function () {
var Twitter = 'Twitter'
muting.init(Twitter)
expect(muting.Twitter).to.equal(Twitter)
})
})
})
Nick Tomlin で指摘されているように、グローバルを宣言するだけです。
ソースまたはプロジェクトのさまざまな部分に関してテスト用に異なるグローバルがあるため、コマンドラインに使用します。
テストには
standard --global describe --global it test/
私のプロジェクトの他の場所でjQueryを使用するコードをリントしたいので、
standard --global $ src/client/
Syntasticでvimを使用している場合、。vimrcに追加したい場合があります
let b:syntastic_checkers = ['standard']
let g:syntastic_javascript_standard_args = "--global $ --global it --global describe"