Стандартный стиль 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 не жаловаться на эти функции?
Ответы
Ответ 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"