Apakah ada cara untuk memiliki cakupan kode dalam kerangka pengujian Javascript Jest yang dibangun di atas Jasmine?
Kerangka internal tidak mencetak cakupan kode yang didapatnya. Saya juga sudah mencoba menggunakan Istanbul , selimut dan JSCover , tetapi tidak ada yang berfungsi.
javascript
jestjs
Alex Palcuie
sumber
sumber
Jawaban:
Saat menggunakan Jest 21.2.1 , saya bisa melihat cakupan kode di baris perintah dan membuat direktori cakupan dengan meneruskan
--coverage
ke skrip Jest. Di bawah ini adalah beberapa contoh:Saya cenderung menginstal Jest secara lokal, dalam hal ini perintahnya mungkin terlihat seperti ini:
npx jest --coverage
Saya berasumsi (meskipun belum mengkonfirmasi), bahwa ini juga akan berfungsi jika saya menginstal Jest secara global:
jest --coverage
Dokumen yang sangat jarang ada di sini
Ketika saya menavigasi ke direktori coverage / lcov-report saya menemukan file index.html yang dapat dimuat ke browser. Itu termasuk informasi yang dicetak pada baris perintah, ditambah informasi tambahan dan beberapa keluaran grafis.
sumber
node_modules
via./node_modules/.bin/jest --coverage
. Selama paket tersebut disebutkan dalam package.json, Anda dapat menjamin eksekusi dengan versi lelucon yang Anda harapkan.UPDATE: 7/20/2018 - Tautan yang ditambahkan dan nama yang diperbarui untuk coverageReporters.
UPDATE: 8/14/2017 - Jawaban ini benar-benar ketinggalan jaman. Lihat saja dokumen Jest sekarang. Mereka memiliki dukungan dan dokumentasi resmi tentang cara melakukan ini.
@hankhsiao punya repo bercabang-cabang di mana Istanbul bekerja dengan Jest. Tambahkan ini ke dependensi dev Anda
Pastikan juga cakupan diaktifkan di entri gurauan package.json Anda dan Anda juga dapat menentukan format yang Anda inginkan. (The html adalah pantat yang sangat buruk).
Lihat dokumentasi Jest untuk coverageReporters (standarnya adalah
["json", "lcov", "text"]
)Atau tambahkan
--coverage
ketika Anda memanggil lelucon.sumber
coverageReporters
dan defaultnya adalah["json", "lcov", "text"]
. Lihat facebook.github.io/jest/docs/…Jan 2019: Jest versi 23.6
Bagi siapa pun yang melihat pertanyaan ini baru-baru ini terutama jika pengujian menggunakan
npm
atauyarn
langsungSaat ini, Anda tidak perlu mengubah opsi konfigurasi
Sesuai situs web resmi lelucon , Anda dapat melakukan hal berikut untuk menghasilkan laporan cakupan:
1- Untuk npm:
Anda harus meletakkan
--
sebelum melewati--coverage
argumen leluconjika Anda mencoba memanggil
--coverage
langsung tanpa--
itu tidak akan berhasil2- Untuk benang:
Anda dapat melewatkan
--coverage
argumen lelucon secara langsungsumber
--watch
pengaturan untuk ini.package.json
.Baiklah, abaikan jawaban saya sebelumnya karena seseorang mengatakan kepada saya bahwa itu tidak menyelesaikan masalah.
Jawaban Baru:
1) Periksa lelucon terbaru (v 0.22): https://github.com/facebook/jest
2) Tim facebook menempatkan istanbul sebagai bagian dari laporan liputan dan Anda dapat menggunakannya secara langsung.
3) Setelah mengeksekusi lelucon, Anda bisa mendapatkan laporan cakupan pada konsol dan di bawah folder root yang ditetapkan oleh lelucon, Anda akan menemukan laporan cakupan dalam format json dan html.
4) FYI, jika Anda menginstal dari npm, Anda mungkin tidak mendapatkan versi terbaru; jadi cobalah github terlebih dahulu dan pastikan cakupannya adalah yang Anda butuhkan.
Jawaban lama:
Punya masalah yang sama juga. Jawaban singkatnya adalah:
Istanbul
danJest
TIDAK bekerja sama.Periksa halaman-halaman berikut untuk detail lebih lanjut:
https://github.com/facebook/jest/issues/101
@ Circo Costa:
config.collectCoverage
TIDAK berfungsi, karena ini adalah fungsi 'TODO'. Silakan periksa kode sumber.sumber
Jika Anda mengalami masalah dengan --coverage tidak berfungsi, itu mungkin juga karena memiliki coverageReporters diaktifkan tanpa 'teks' atau 'ringkasan teks' yang ditambahkan. Dari dokumen: "Catatan: Mengatur opsi ini menimpa nilai default. Tambahkan" teks "atau" ringkasan teks "untuk melihat ringkasan cakupan dalam output konsol." Sumber
sumber
Konfigurasikan file package.json Anda
Sekarang jalankan:
Semua tes akan mulai berjalan dan Anda akan mendapatkan laporan.
sumber
Saya memiliki masalah yang sama dan saya memperbaikinya seperti di bawah ini.
npm install --save-dev yarn
npm install --save-dev jest-cli
"jest-coverage": "yarn run jest -- --coverage"
Setelah Anda menulis tes, jalankan perintah npm jalankan jest-coverage. Ini akan membuat folder cakupan di direktori root. /coverage/icov-report/index.html memiliki tampilan html dari cakupan kode.
Selamat coding!
sumber
Coba Chutzpa . Saya baru saja menggunakannya. Dan saya menulis blog tentang cara mengintegrasikan dalam Visual Studio.
Ini adalah bagaimana saya melakukan cakupan kode dengan Chutzpah: http://francorobles.wordpress.com/2014/09/14/code-coverage-with-chutzpah/
sumber
require
.