J'ai un fichier de test Mocha qui ressemble à ceci:
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)
})
})
})
Lorsque je cours à mocha
partir de la CLI, il exécute le test avec succès.
Quand je lance standard
(l'exécutable pour JavaScript Standard Style ), j'obtiens des erreurs sur les fonctions du framework de Mocha comme ceci:
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.
Quelle est la manière la plus propre de faire en sorte que Standard ne se plaigne pas de ces fonctions?
javascript
mocha
urig
la source
la source
it
du code non-test régulier et qu'il passera le peluchage? En d'autres termes. Peut-il être limité uniquement aux classes de test?package.json
paramètres sont «globaux» pour le linter. Vous pouvez le contourner en fournissant différents arguments CLI pour différents fichiers: quelque chose commestandard --env mocha test/**/js
pour les tests de charpie (non testés), mais IRL je n'ai jamais eu besoin de modifier des paramètres comme celui-ci.jest
mais je ne sais pas pourquoi ne fonctionne que pour le moka et pas pour plaisanter!Je préfère modifier mon
.eslintrc
et ajouter du moka à la section env:... "env": { "commonjs": true, "node": true, "mocha": true }, ...
de cette façon, mon
package.json
fichier est maintenu propre, le plugin vscode pour eslint le comprend mieuxla source
alors que la configuration des commentaires d'eslint fonctionne très bien pour un seul fichier, je préfère utiliser la configuration standard pour le faire pour mes projets. Par exemple
package.json
globals
{ "name": "my-package", "version": "1.0.0", "standard": { "globals": [ "describe", "context", "before", "beforeEach", "after", "afterEach", "it", "expect" ] } }
la source
pour eslint, utilisez cette ligne au début de test_file.js
/* eslint-env mocha */
la source
Vous pouvez utiliser la même solution que pour les 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) }) }) })
la source
Comme l'a souligné Nick Tomlin, il vous suffit de déclarer les globaux.
J'utilise pour le mettre dans la ligne de commande, car j'ai différents globaux pour les tests comme pour les sources ou les différentes parties du projet.
Pour les tests, nous devrions utiliser
standard --global describe --global it test/
ailleurs dans mon projet, je veux lint du code qui utilise jQuery donc j'utilise
standard --global $ src/client/
Astuce bonus
Si vous utilisez vim avec Syntastic, vous voudrez peut-être ajouter à votre .vimrc
let b:syntastic_checkers = ['standard'] let g:syntastic_javascript_standard_args = "--global $ --global it --global describe"
la source