Jasmine üzerine kurulu Javascript Jest test çerçevesinde kod kapsamına sahip olmanın bir yolu var mı?
Dahili çerçeve , aldığı kod kapsamını yazdırmaz. Ayrıca İstanbul , battaniye ve JSCover kullanmayı denedim ama hiçbiri çalışmıyor.
Jasmine üzerine kurulu Javascript Jest test çerçevesinde kod kapsamına sahip olmanın bir yolu var mı?
Dahili çerçeve , aldığı kod kapsamını yazdırmaz. Ayrıca İstanbul , battaniye ve JSCover kullanmayı denedim ama hiçbiri çalışmıyor.
Yanıtlar:
Jest 21.2.1'i kullanırken , komut satırında kod kapsamını görebilir --coverage
ve Jest betiğine geçerek bir kapsam dizini oluşturabilirim . Aşağıda bazı örnekler verilmiştir:
Jest'i yerel olarak kurma eğilimindeyim, bu durumda komut şöyle görünebilir:
npx jest --coverage
Jest'i global olarak kurarsam bunun da işe yarayacağını varsayıyorum (henüz onaylanmamış):
jest --coverage
Çok seyrek dokümanlar burada
Ben gittikten sonra kapsama / lcov raporu dizininde Bir buldum index.html bir tarayıcıya yüklendiğinde olabilir dosyayı. Komut satırında yazdırılan bilgilerin yanı sıra ek bilgiler ve bazı grafik çıktıları içeriyordu.
node_modules
aracılığıyla kullanın ./node_modules/.bin/jest --coverage
. Paket, package.json içinde adlandırıldığı sürece, beklediğiniz jest sürümünün tam sürümüyle yürütülmesini garanti edebilirsiniz.
GÜNCELLEME: 7/20/2018 - Kapsama Raporları için bağlantılar ve güncellenmiş ad eklendi.
GÜNCELLEME: 8/14/2017 - Bu yanıt tamamen güncel değil. Şimdi Jest belgelerine bakın. Bunun nasıl yapılacağına dair resmi destek ve belgeleri var.
@hankhsiao'nun İstanbul'un Jest ile çalıştığı çatallı bir repo'su var. Bunu geliştirici bağımlılıklarınıza ekleyin
"devDependencies": {
"jest-cli": "git://github.com/hankhsiao/jest.git"
}
Ayrıca package.json jest girişinizde kapsamın etkinleştirildiğinden emin olun ve ayrıca istediğiniz formatları da belirtebilirsiniz. (Html oldukça kötü).
"jest": {
"collectCoverage": true,
"coverageReporters": ["json", "html"],
}
Kapsam için Jest belgelerine bakın Raporlayıcılar (varsayılan )["json", "lcov", "text"]
Veya --coverage
şakayı çağırdığınızda ekleyin .
coverageReporters
ve varsayılan ["json", "lcov", "text"]
. Bkz. Facebook.github.io/jest/docs/…
Son zamanlarda bu soruyu araştıran herkes için, özellikle kullanarak npm
veya yarn
doğrudan test ediyorsanız
Şu anda yapılandırma seçeneklerini değiştirmeniz gerekmiyor
Gereğince jest resmi web sitesi , sen kapsama raporlar oluşturmak için aşağıdakileri yapabilirsiniz:
Jest argümanını --
geçmeden önce koymalısınız--coverage
npm test -- --coverage
Eğer --coverage
olmadan doğrudan çağırmayı denersen --
işe yaramaz
--coverage
Doğrudan jest argümanını iletebilirsiniz
yarn test --coverage
--watch
ayarı kullanmak istersiniz .
package.json
.
Pekala, birisi sorunu çözmediğini söylediği için önceki cevabımı yoksayın.
Yeni Cevap:
1) En son jest'i kontrol edin (v 0.22): https://github.com/facebook/jest
2) Facebook ekibi istanbul'u haber raporunun bir parçası olarak koyar ve bunu doğrudan kullanabilirsiniz.
3) Jest'i çalıştırdıktan sonra, konsol üzerinden ve jest tarafından belirlenen kök klasörün altında kapsam raporu alabilirsiniz, kapsam raporunu json ve html formatında bulacaksınız.
4) Bilginize, npm'den yüklerseniz, en son sürümü alamayabilirsiniz; Bu yüzden önce github'ı deneyin ve kapsamın ihtiyacınız olan şey olduğundan emin olun.
Eski Cevap:
Aynı sorunu da yaşadım. Kısa cevap: Istanbul
ve Jest
birlikte ÇALIŞMIYOR.
Daha fazla ayrıntı için aşağıdaki sayfaları kontrol edin:
https://github.com/facebook/jest/issues/101
jest, JS betiklerini yerel kodda bir V8 bağlamında çalıştıran contextify kullanır, böylece istanbul'un tüm gereksinimlerini ve vm.runInThisContext kancalarını atlar. Bu nedenle, standart bağlanabilir node.js fonksiyonları kullanılmadığından ve her test kendi sandbox'ında çalıştığından ve kapsama nesnesinin saklanacağı bir global olmadığından, istanbul kapağı çalışmayacaktır.
@Ciro Costa: config.collectCoverage
Bir 'YAPILACAK' işlevi olduğu için çalışmıyor. Lütfen kaynak kodunu kontrol edin.
--Coverage çalışmama konusunda sorun yaşıyorsanız, kapsam Raporlayıcıların 'metin' veya 'metin-özet' eklenmeden etkinleştirilmiş olmasından da kaynaklanıyor olabilir. Dokümanlardan: "Not: Bu seçeneğin ayarlanması varsayılan değerlerin üzerine yazar. Konsol çıktısında bir kapsam özeti görmek için" metin "veya" metin özeti "ekleyin." Kaynak
Package.json dosyanızı yapılandırın
"test": "jest --coverage",
Şimdi çalıştırın:
yarn test
Aynı sorunu yaşadım ve aşağıdaki gibi düzelttim.
npm install --save-dev yarn
npm install --save-dev jest-cli
"jest-coverage": "yarn run jest -- --coverage"
Testleri yazdıktan sonra npm komutunu çalıştırın jest-kapsamı. Bu, kök dizinde kapsama klasörü oluşturacaktır. /coverage/icov-report/index.html, kod kapsamının html görünümüne sahiptir.
Mutlu kodlamalar!
Chutzpah'ı deneyin . Ben sadece kullandım. Ve bununla ilgili olarak Visual Studio'ya nasıl entegre edileceğini yazdım.
Chutzpah ile kod kapsamını böyle yaptım: http://francorobles.wordpress.com/2014/09/14/code-coverage-with-chutzpah/
require
.