Mam plik testowy Mocha , który wygląda następująco:
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)
})
})
})
Kiedy uruchamiam mocha
z CLI, pomyślnie uruchamia test.
Kiedy uruchamiam standard
(plik wykonywalny JavaScript Standard Style ), otrzymuję błędy w funkcjach frameworka Mocha, takie jak:
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.
Jaki jest najczystszy sposób, aby Standard nie narzekał na te funkcje?
javascript
mocha
urig
źródło
źródło
it
zwykły kod niebadający w testach, a on przejdzie linting? Innymi słowy. Czy można to ograniczyć tylko do klas testowych?package.json
ustawienia są „globalne” dla lintera. Możesz to ominąć, podając różne argumenty CLI dla różnych plików: coś jakstandard --env mocha test/**/js
dla testów linta (nie testowane), ale IRL nigdy nie musiałem dostosowywać takich ustawień.jest
ale nie wiem, dlaczego działa tylko na mokkę, a nie na żart!Wolę edytować
.eslintrc
i dodawać mokkę do sekcji env:... "env": { "commonjs": true, "node": true, "mocha": true }, ...
w ten sposób mój
package.json
plik jest czysty, a wtyczka vscode dla eslint lepiej to rozumieźródło
podczas gdy konfiguracja komentarzy w eslint działa świetnie dla pojedynczego pliku, wolę używać konfiguracji standardowej, aby robić to w moich projektach. Na przykład
package.json
globals
{ "name": "my-package", "version": "1.0.0", "standard": { "globals": [ "describe", "context", "before", "beforeEach", "after", "afterEach", "it", "expect" ] } }
źródło
dla eslint użyj tej linii na początku pliku test_file.js
/* eslint-env mocha */
źródło
Możesz użyć tego samego rozwiązania, co w przypadku pracowników internetowych
/* 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) }) }) })
źródło
Jak zauważył Nick Tomlin , wystarczy zadeklarować globalne.
Używam, aby umieścić go w linii poleceń, ponieważ mam różne globale do testów, jak dla źródeł lub różnych części projektu.
Do testów powinniśmy użyć
standard --global describe --global it test/
gdzie indziej w moim projekcie chcę lintować kod, który używa jQuery, więc używam
standard --global $ src/client/
Wskazówka bonusowa
Jeśli używasz vima z Syntastic, być może zechcesz go dodać do swojego .vimrc
let b:syntastic_checkers = ['standard'] let g:syntastic_javascript_standard_args = "--global $ --global it --global describe"
źródło