我有一个Mocha测试文件,如下所示:
MyApp.age = 5
当我从CLI运行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
(JavaScript Standard Style的可执行文件)时,我在Mocha的框架函数中遇到错误,如下所示:
standard
什么是最简洁的方法让标准不抱怨这些功能?
答案 0 :(得分:97)
实际上,您不需要在package.json中列出每个全局变量
您可以像这样指定环境:
"standard": {
"env": [ "mocha" ]
}
答案 1 :(得分:62)
我更喜欢编辑我的.eslintrc
并将mocha添加到env部分:
...
"env": {
"commonjs": true,
"node": true,
"mocha": true
},
...
这样我的package.json
文件保持干净,eslint的vscode插件也能更好地理解
答案 2 :(得分:55)
虽然eslint的评论配置适用于单个文件,但我更喜欢使用标准的package.json
globals
配置为我的项目执行此操作。 E.g。
{
"name": "my-package",
"version": "1.0.0",
"standard": {
"globals": [
"describe",
"context",
"before",
"beforeEach",
"after",
"afterEach",
"it",
"expect"
]
}
}
答案 3 :(得分:38)
您可以使用与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)
})
})
})
答案 4 :(得分:38)
for eslint在 test_file.js
的开头使用此行/* eslint-env mocha */
答案 5 :(得分:3)
正如Nick Tomlin所指出的,你只需要声明全局变量。
我用它将它放在命令行中,因为我有不同的全局变量用于测试源或项目的不同部分。
对于测试,我们应该使用
standard --global describe --global it test/
我的项目中的其他地方我想要使用jQuery的lint代码,所以我使用
standard --global $ src/client/
如果您使用带有Syntastic的vim,您可能想要添加到 .vimrc
let b:syntastic_checkers = ['standard']
let g:syntastic_javascript_standard_args = "--global $ --global it --global describe"