Подтвердить что ты не робот

Стандартный стиль 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)
    })
  })
})

Когда я запускаю mocha из CLI, он успешно запускает тест.

Когда я запускаю standard (исполняемый файл для Стандартного стиля JavaScript), я получаю ошибки в функциях структуры 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 не жаловаться на эти функции?

4b9b3361

Ответ 1

Вы можете использовать то же решение, что и для веб-работников

/* 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)
    })
  })
})

Ответ 2

в то время как конфигурация комментариев eslint отлично подходит для одного файла, я предпочитаю использовать стандартную конфигурацию package.json globals, чтобы сделать это для моих проектов. Например.

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

Ответ 3

На самом деле вам не нужно перечислять каждую глобальную переменную в вашем пакете. json

Вы можете указать такие среды, как это:

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

Ответ 4

для eslint используйте эту строку в начале test_file.js

/* eslint-env mocha */

Ответ 5

Как указано Nick Tomlin, вам просто нужно объявить глобальные переменные.

Я использую, чтобы поместить его в командной строке, так как у меня есть разные глобальные значения для тестов, как для источников, так и для разных частей проекта.

Для тестов мы должны использовать

standard --global describe --global it test/

В другом месте моего проекта я хочу использовать код, который использует jQuery, поэтому я использую

standard --global $ src/client/

Бонусный наконечник

Если вы используете vim с Syntastic, возможно, вы захотите добавить в свой .vimrc

let b:syntastic_checkers = ['standard']
let g:syntastic_javascript_standard_args = "--global $ --global it --global describe"