JavaScript 标准样式不识别 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时,它成功地运行了测试。

When I run standard (the executable for JavaScript 标准样式) I get errors on Mocha's framework functions like so:

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.

使标准不抱怨这些功能的最干净的方法是什么?

46158 次浏览

您可以使用与 网络工作者相同的解决方案

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

虽然 eslint 的注释配置对于单个文件非常有效,但是我更喜欢使用标准的 package.json globals配置来完成我的项目。例如。

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

正如 Nick Tomlin所指出的,您只需声明全局变量。

我用它放在命令行中,因为对于源或项目的不同部分,我有不同的全局测试。

我们应该用来做测试

standard --global describe --global it test/

在我的项目的其他地方,我想使用 jQuery 的 lint 代码,所以我使用

standard --global $ src/client/

额外小费

If you are using vim with Syntastic you maybe want to add to your 。 vimrc

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

实际上,您不需要列出 package.json 中的每个全局变量

您可以像下面这样指定环境:

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

资料来源: 正式的 ESLint 配置文档

对于 eslint,在 Test _ file. js的开头使用这一行

/* eslint-env mocha */

I prefer to edit my .eslintrc and add mocha to env section:

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

这样我的 package.json文件保持干净,也 vscode 插件为 eslint 了解它更好