Ich habe eine Mokka- Testdatei, die so aussieht:
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)
})
})
})
Wenn ich mocha
von der CLI aus starte, wird der Test erfolgreich ausgeführt.
Wenn ich standard
(die ausführbare Datei für JavaScript Standard Style ) ausführe, erhalte ich folgende Fehler bei den Mocha-Framework-Funktionen:
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.
Was ist der sauberste Weg, um Standard dazu zu bringen, sich nicht über diese Funktionen zu beschweren?
javascript
mocha
urig
quelle
quelle
it
regulären Nicht-Test-Code aufrufen kann und er das Flusen bestehen wird? Mit anderen Worten. Kann es nur auf Testklassen beschränkt werden?package.json
Einstellungen sind für Linter 'global'. Sie können es umgehen, indem Sie verschiedene CLI-Argumente für verschiedene Dateien angeben: so etwas wiestandard --env mocha test/**/js
für Flusentests (nicht getestet), aber IRL Ich musste solche Einstellungen nie anpassen.jest
aber ich weiß nicht, warum nur für Mokka und nicht für Scherz funktioniert!Ich ziehe es vor, meine zu bearbeiten
.eslintrc
und Mokka zum env-Abschnitt hinzuzufügen:... "env": { "commonjs": true, "node": true, "mocha": true }, ...
Auf diese Weise wird meine
package.json
Datei sauber gehalten, auch das vscode-Plugin für eslint versteht es besserquelle
Während die Kommentarkonfiguration von eslint für eine einzelne Datei hervorragend funktioniert, bevorzuge ich die Standardkonfiguration , um dies für meine Projekte zu tun. Z.B
package.json
globals
{ "name": "my-package", "version": "1.0.0", "standard": { "globals": [ "describe", "context", "before", "beforeEach", "after", "afterEach", "it", "expect" ] } }
quelle
Verwenden Sie für eslint diese Zeile am Anfang von test_file.js
/* eslint-env mocha */
quelle
Sie können dieselbe Lösung wie für Web-Worker verwenden
/* 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) }) }) })
quelle
Wie Nick Tomlin betont hat, müssen Sie nur Globale deklarieren.
Ich benutze es, um es in die Befehlszeile zu setzen, da ich verschiedene Globals für Tests wie für Quellen oder verschiedene Teile des Projekts habe.
Für Tests sollten wir verwenden
standard --global describe --global it test/
An anderer Stelle in meinem Projekt möchte ich Code fusseln, der jQuery verwendet, also verwende ich
standard --global $ src/client/
Bonus-Tipp
Wenn Sie vim mit Syntastic verwenden, möchten Sie möglicherweise Ihre .vimrc hinzufügen
let b:syntastic_checkers = ['standard'] let g:syntastic_javascript_standard_args = "--global $ --global it --global describe"
quelle