Lua Academy · Pelajaran

Liputan Kod dan Instrumentasi Ujian

Ukur liputan ujian dengan luacov dan tafsirkan laporan liputan.

Pelajaran 4 daripada 413 langkah

Liputan Kod dan Instrumentasi Ujian ialah pelajaran Lua Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Lua Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Lua Academy merangkumi sejumlah 4 pelajaran.

Apakah Liputan Kod?

Liputan kod mengukur baris, cabang atau fungsi kod anda yang dilaksanakan oleh ujian. Liputan yang tinggi memberikan keyakinan bahawa ujian menjalankan kod dengan baik.

luacov: Alat Standard

luacov ialah alat liputan standard Lua. Alat ini bersambung dengan lapisan penyahpepijatan Lua dan merekodkan baris yang dilaksanakan.

-- Run with luacov:
luacov script.lua
-- Or require at the start of the test file:
require("luacov")

Menggunakan luacov dengan Pelaksana Ujian

Dengan busted atau pelaksana tersuai, perlukan luacov pada permulaan dan alat itu akan merekodkan liputan secara automatik.

-- spec/all_spec.lua
require("luacov")
describe("my module", function()
  it("does something", function()
    local m = require("mymodule")
    assert.equals(m.add(1,2), 3)
  end)
end)

Menjana Laporan

Selepas ujian dijalankan, luacov menulis fail luacov.stats.out. Jalankan luacov-reporter untuk menjana laporan yang boleh dibaca manusia.

# After tests:
luacov-reporter
# Produces luacov.report.out with per-file line coverage

Membaca Laporan

Setiap baris menunjukkan: bilangan kenaan, bilangan terlepas dan baris sumber. Baris dengan 0 kenaan ialah kod yang tidak diliputi — kemungkinan kod mati atau kes ujian yang tiada.

Liputan Cabang

luacov menjejaki liputan baris, bukan liputan cabang. Untuk liputan cabang, gunakan alat yang lebih maju atau tambahkan kes ujian secara manual bagi setiap laluan if/else.

Cangkuk Liputan Tersuai

Bina perakam liputan minimum dengan debug.sethook untuk peristiwa baris.

local covered = {}
debug.sethook(function(event, line)
  local info = debug.getinfo(2, "S")
  local src = info.short_src
  covered[src] = covered[src] or {}
  covered[src][line] = (covered[src][line] or 0) + 1
end, "l")
-- ... run tests ...
debug.sethook()

Ambang Liputan

Tetapkan ambang liputan minimum dalam CI (contohnya, 80%). Gagalkan binaan jika liputan jatuh di bawahnya. Tindakan ini menghalang kod mati yang tidak disengajakan daripada terkumpul.

Corak Instrumentasi Ujian

Selain liputan, instrumentasikan ujian dengan: masa pelaksanaan (mengesan ujian perlahan), penegasan bilangan panggilan (mengesahkan fungsi dipanggil sebanyak bilangan yang dijangka) dan penangkapan nilai (merekod argumen yang dihantar kepada fungsi olok-olok).

Pengolokan untuk Pengasingan Ujian

Gantikan modul sebenar dengan modul olok-olok semasa pengujian untuk mengasingkan unit. Simpan fungsi sebenar, gantikan dengan fungsi gantian penjejakan dan pulihkannya selepas ujian.

local realSend = http.send
local calls = {}
http.send = function(...) calls[#calls+1] = {...} end
-- run tests --
http.send = realSend  -- restore
print(#calls, "send calls")

Integrasi dengan CI

Jalankan luacov dalam alur CI anda. Muat naik laporan liputan ke Coveralls atau Codecov untuk menjejaki perkembangannya merentas komit.

Soalan Liputan

Apakah yang ditunjukkan oleh baris dengan 0 capaian dalam laporan luacov?

Imbas Kembali: Liputan Kod dan Instrumentasi Ujian

Gunakan luacov untuk merekod liputan baris dan menjana laporan. Tetapkan ambang liputan dalam CI. Tambahkan instrumentasi debug.sethook tersuai untuk penjejakan khusus. Gunakan objek olokan untuk pengasingan ujian unit dan pengesahan kiraan panggilan.

Percuma untuk bermula

Pelajari Lua dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
40
Pelajaran
159

Soalan Lazim

Adakah pelajaran “Liputan Kod dan Instrumentasi Ujian” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Lua Academy, termasuk “Liputan Kod dan Instrumentasi Ujian”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Lua Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Liputan Kod dan Instrumentasi Ujian”?

Ukur liputan ujian dengan luacov dan tafsirkan laporan liputan. Anda berlatih Lua Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Lua Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Lua Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Liputan Kod dan Instrumentasi Ujian” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Lua Academy ini?

Ya. Setiap pelajaran Lua Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Pustaka debug secara Mendalam
  2. Penyahpepijatan Jauh dengan MobDebug
  3. Pemprofilan dengan LuaProfiler
  4. Liputan Kod dan Instrumentasi Ujian
← Kembali ke Lua Academy