web-dev-qa-db-ja.com

JavaScript標準スタイルはMochaを認識しません

次のような 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を実行すると、テストが正常に実行されます。

standardJavaScript 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がこれらの機能について文句を言わないようにする最もクリーンな方法は何ですか?

61
urig

実際には、package.jsonのすべてのグローバル変数をリストする必要はありません。

代わりに、次のように環境を指定できます。

"standard": {
  "env": [ "mocha" ]
}

ソース: 公式のESLint設定ドキュメント

109

私は自分の.eslintrcそしてenvセクションにmochaを追加します:

...
"env": {
  "commonjs": true,
  "node": true,
  "mocha": true
},
...

このように私のpackage.jsonファイルはクリーンに保たれ、eslintのvscodeプラグインはそれをよりよく理解します

79
Developerium

eslintのコメント設定は単一のファイルに対してはうまく機能しますが、標準の package.jsonglobals私のプロジェクトでこれを行うための設定。例えば。

{
  "name": "my-package",
  "version": "1.0.0",
  "standard": {
    "globals": [
      "describe",
      "context",
      "before",
      "beforeEach",
      "after",
      "afterEach",
      "it",
      "expect"
    ]
  }
}
57
Nick Tomlin

eslintの場合、test_file.jsの先頭でこの行を使用します

/* eslint-env mocha */
40
Ryu_hayabusa

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)
    })
  })
})
38
Niklas Ingholt

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"
3
Gianluca Casati