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 --coverageve 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_modulesaracı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 .
coverageReportersve varsayılan ["json", "lcov", "text"]. Bkz. Facebook.github.io/jest/docs/…
Son zamanlarda bu soruyu araştıran herkes için, özellikle kullanarak npmveya yarndoğ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 --coverageolmadan doğrudan çağırmayı denersen --işe yaramaz
--coverageDoğrudan jest argümanını iletebilirsiniz
yarn test --coverage
--watchayarı 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: Istanbulve Jestbirlikte Ç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.collectCoverageBir '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 yarnnpm 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.