[javascript] JavaScript Standard Style은 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)
    })
  })
})

내가 실행하면 mochaCLI에서, 그것은 성공적으로 테스트를 실행합니다.

실행하면 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.

표준이 이러한 기능에 대해 불평하지 않도록하는 가장 깨끗한 방법은 무엇입니까?



답변

실제로 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 */


답변

웹 작업자 와 동일한 솔루션을 사용할 수 있습니다.

/* 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"


답변