Tengo un archivo de prueba de Mocha que se ve así:
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)
})
})
})
Cuando ejecuto mocha
desde la CLI, ejecuta la prueba con éxito.
Cuando ejecuto standard
(el ejecutable para JavaScript Standard Style ) obtengo errores en las funciones del marco de Mocha así:
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.
¿Cuál es la forma más limpia de hacer que Standard no se queje de estas funciones?
javascript
mocha
urig
fuente
fuente
it
al código normal que no es de prueba y pasará el borrado? En otras palabras. ¿Se puede restringir solo a clases de prueba?package.json
configuración es 'global' para linter. Puede omitirlo proporcionando diferentes argumentos CLI para diferentes archivos: algo comostandard --env mocha test/**/js
para las pruebas de pelusa (no probado), pero IRL nunca tuve la necesidad de modificar configuraciones como esta.jest
pero no sé por qué solo funciona para moka y no para broma!Prefiero editar mi
.eslintrc
y agregar mocha a la sección env:... "env": { "commonjs": true, "node": true, "mocha": true }, ...
de esta manera mi
package.json
archivo se mantiene limpio, también el complemento vscode para eslint lo entiende mejorfuente
Aunque la configuración de comentarios de eslint funciona muy bien para un solo archivo, prefiero usar la configuración estándar para hacer esto en mis proyectos. P.ej
package.json
globals
{ "name": "my-package", "version": "1.0.0", "standard": { "globals": [ "describe", "context", "before", "beforeEach", "after", "afterEach", "it", "expect" ] } }
fuente
para eslint use esta línea al comienzo de test_file.js
/* eslint-env mocha */
fuente
Puede utilizar la misma solución que para los trabajadores web
/* 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) }) }) })
fuente
Como lo señaló Nick Tomlin , solo necesita declarar globales.
Yo suelo ponerlo en la línea de comandos, ya que tengo diferentes globales para pruebas como para fuentes o diferentes partes del proyecto.
Para las pruebas debemos usar
standard --global describe --global it test/
en otra parte de mi proyecto quiero lint código que usa jQuery así que uso
standard --global $ src/client/
Consejo de bonificación
Si está utilizando vim con Syntastic, tal vez desee agregar a su .vimrc
let b:syntastic_checkers = ['standard'] let g:syntastic_javascript_standard_args = "--global $ --global it --global describe"
fuente