Saya memiliki file uji Mocha yang terlihat seperti ini:
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)
})
})
})
Saat saya menjalankan mocha
dari CLI, pengujian berhasil dijalankan.
Ketika saya menjalankan standard
(dapat dieksekusi untuk Gaya Standar JavaScript ) saya mendapatkan kesalahan pada fungsi kerangka kerja Mocha seperti:
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.
Apa cara terbersih agar Standard tidak mengeluh tentang fungsi-fungsi ini?
javascript
mocha
urig
sumber
sumber
it
kode non-tes biasa dan akan lolos linting? Dengan kata lain. Bisakah itu dibatasi hanya untuk kelas uji?package.json
pengaturan 'global' untuk linter. Anda dapat melewati itu dengan memberikan argumen CLI yang berbeda untuk file yang berbeda: sepertistandard --env mocha test/**/js
untuk tes lint (tidak diuji), tetapi IRL saya tidak pernah perlu mengubah pengaturan seperti ini.jest
tetapi saya tidak tahu mengapa hanya berfungsi untuk moka dan bukan bercanda!Saya lebih suka mengedit bagian saya
.eslintrc
dan menambahkan mocha ke env:... "env": { "commonjs": true, "node": true, "mocha": true }, ...
dengan cara ini
package.json
file saya tetap bersih, juga plugin vscode untuk eslint lebih memahaminyasumber
sementara konfigurasi komentar eslint berfungsi dengan baik untuk satu file, saya lebih suka menggunakan konfigurasi standar untuk melakukan ini untuk proyek saya. Misalnya
package.json
globals
{ "name": "my-package", "version": "1.0.0", "standard": { "globals": [ "describe", "context", "before", "beforeEach", "after", "afterEach", "it", "expect" ] } }
sumber
untuk eslint gunakan baris ini di awal test_file.js
/* eslint-env mocha */
sumber
Anda dapat menggunakan solusi yang sama seperti untuk pekerja 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) }) }) })
sumber
Seperti yang ditunjukkan oleh Nick Tomlin, Anda hanya perlu mendeklarasikan global.
Saya gunakan untuk meletakkannya di baris perintah, karena saya memiliki global yang berbeda untuk pengujian seperti untuk sumber atau bagian proyek yang berbeda.
Untuk tes kita harus menggunakan
standard --global describe --global it test/
di tempat lain dalam proyek saya, saya ingin kode lint yang menggunakan jQuery jadi saya gunakan
standard --global $ src/client/
Tip bonus
Jika Anda menggunakan vim dengan Syntastic, Anda mungkin ingin menambahkan .vimrc Anda
let b:syntastic_checkers = ['standard'] let g:syntastic_javascript_standard_args = "--global $ --global it --global describe"
sumber