Mocha'yı NodeJS uygulamamı test etmek için kullanıyorum. Kod kapsama özelliğini nasıl kullanacağımı anlayamıyorum. Ben googling denedim ama herhangi bir uygun öğretici bulamadı. Lütfen yardım et.
Mocha'yı NodeJS uygulamamı test etmek için kullanıyorum. Kod kapsama özelliğini nasıl kullanacağımı anlayamıyorum. Ben googling denedim ama herhangi bir uygun öğretici bulamadı. Lütfen yardım et.
Yanıtlar:
Kod kapsamı için ek bir kütüphaneye ihtiyacınız var ve istanbul'un ne kadar güçlü ve kolay olduğuna şaşıracaksınız . Mocha testlerinizi geçtikten sonra aşağıdakileri deneyin:
npm install nyc
Şimdi, nyc komutunu mevcut test komutunuzun önüne yerleştirin, örneğin:
{
"scripts": {
"test": "nyc mocha"
}
}
istanbul.cmd cover C:\Users\{UserName}\AppData\Roaming\npm\node_modules\mocha\bin\_mocha
$(npm bin)
, bin klasöründe kurallı bir kısayoldur ./node_modules/.bin/
ve bin klasöründe diğer istanbul/lib/cli.js
adıdır istanbul
. İşte daha kısa bir komut:$(npm bin)/istanbul cover $(npm bin)/_mocha -- --ui bdd -R spec -t 5000
istanbul cover node_modules/mocha/bin/_mocha -- -R spec
Şimdi ( 2020 kullanmak için) tercih edilen bir yol İstanbul onun üzerinden gerçekleştirilir "sanat komut satırı arayüzü durum" NYC .
İlk olarak, projenize
npm i nyc --save-dev
Ardından, npm tabanlı bir projeniz varsa, mocha testlerinizin kod kapsamını yürütmek scripts
için package.json dosyanızın içindeki test komut dosyasını değiştirin :
{
"scripts": {
"test": "nyc --reporter=text mocha"
}
}
Şimdi testlerinizi yapın
npm test
ve test çıkışınızdan hemen sonra konsolunuzda böyle bir tablo göreceksiniz:
Sadece kullan
nyc --reporter=html
yerine text
. Şimdi içeride bir rapor üretecek ./coverage/index.html
.
İstanbul çok çeşitli rapor formatlarını desteklemektedir. Sizin için en yararlı olanı bulmak için rapor kitaplığına bakın . --reporter=REPORTER_NAME
İstediğiniz her biçim için bir seçenek eklemeniz yeterlidir. Örneğin,
nyc --reporter=html --reporter=text
hem konsola hem de html raporuna sahip olacaksınız.
Sadece başka bir komut dosyası ekleyin package.json
ve test
komut dosyasını yalnızca test çalıştırıcınızla (örn. Mocha) bırakın :
{
"scripts": {
"test": "mocha",
"test-with-coverage": "nyc --reporter=text mocha"
}
}
Şimdi bu özel komut dosyasını çalıştırın
npm run test-with-coverage
kod kapsamı ile testler yapmak.
Toplam kod kapsamı% 90'ın altındaysa başarısız olur:
nyc --check-coverage --lines 90
En az bir dosyanın kod kapsamı% 90'ın altındaysa başarısız olur:
nyc --check-coverage --lines 90 --per-file
--reporter=html
vb tablonun sadece başlıklara kaplı kaplanmamış blokları veya yaklaşık% gösterilen şey yok, etkin ama html dosyası her zaman boş olduğunu
Blanket.js de mükemmel çalışıyor.
npm install --save-dev blanket
testinizin önünde / tests.js
require('blanket')({
pattern: function (filename) {
return !/node_modules/.test(filename);
}
});
Çalıştırmak mocha -R html-cov > coverage.html
istanbul cover node_modules/mocha/bin/_mocha
.