Eu tenho um arquivo de teste Mocha parecido com este:
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)
})
})
})
Quando executo a mocha
partir da CLI, o teste é executado com sucesso.
Quando eu executo standard
(o executável para JavaScript Standard Style ), recebo erros nas funções do framework do Mocha como:
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.
Qual é a maneira mais limpa de fazer o Standard não reclamar dessas funções?
javascript
mocha
urig
fonte
fonte
it
um código normal que não seja de teste e ele será aprovado no lint? Em outras palavras. Pode ser restrito apenas a aulas de teste?package.json
configurações são "globais" para o linter. Você pode contorná-lo fornecendo diferentes argumentos CLI para arquivos diferentes: algo comostandard --env mocha test/**/js
para testes de lint (não testado), mas IRL - nunca precisei ajustar configurações como essa.jest
mas não sei porque só funciona para mocha e não para brincadeira!Prefiro editar meu
.eslintrc
e adicionar mocha à seção env:... "env": { "commonjs": true, "node": true, "mocha": true }, ...
desta forma meu
package.json
arquivo é mantido limpo, também o plugin vscode para eslint o entende melhorfonte
embora a configuração de comentários do eslint funcione muito bem para um único arquivo, prefiro usar a configuração padrão para fazer isso em meus projetos. Por exemplo
package.json
globals
{ "name": "my-package", "version": "1.0.0", "standard": { "globals": [ "describe", "context", "before", "beforeEach", "after", "afterEach", "it", "expect" ] } }
fonte
para eslint use esta linha no início de test_file.js
/* eslint-env mocha */
fonte
Você pode usar a mesma solução para 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) }) }) })
fonte
Conforme apontado por Nick Tomlin, você só precisa declarar globais.
Costumo colocá-lo na linha de comando, pois tenho diferentes globais para testes como para fontes ou diferentes partes do projeto.
Para testes, devemos usar
standard --global describe --global it test/
em outro lugar no meu projeto, quero lint de código que usa jQuery, então eu uso
standard --global $ src/client/
Dica bônus
Se você estiver usando o vim com o Syntastic, talvez queira adicionar ao seu .vimrc
let b:syntastic_checkers = ['standard'] let g:syntastic_javascript_standard_args = "--global $ --global it --global describe"
fonte