0Pricing
Lua Academy · Ders

Kod Kapsamı ve Test Enstrümantasyonu

luacov ile test kapsamını ölçün ve kapsam raporlarını yorumlayın.

Kod Kapsamı ve Test Enstrümantasyonu, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Lua Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Lua Academy kursu toplamda 4 dersten oluşur.

Kod Kapsamı Nedir?

Kod kapsamı, kodunuzun hangi satırlarının, dallarının veya işlevlerinin sınamalar tarafından yürütüldüğünü ölçer. Yüksek kapsam, sınamaların kodu iyi kullandığına dair güven verir.

luacov: Standart Araç

luacov, standart Lua kapsam aracıdır. Lua hata ayıklama katmanına kancalanır ve hangi satırların yürütüldüğünü kaydeder.

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

luacov'u Sınama Çalıştırıcısıyla Kullanma

busted veya özel bir çalıştırıcıyla, başlangıçta luacov'u yükleyiniz; kapsamı otomatik olarak kaydeder.

-- 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)

Rapor Oluşturma

Sınamalar çalıştıktan sonra luacov bir luacov.stats.out dosyası yazar. İnsanların okuyabileceği bir rapor oluşturmak için luacov-reporter çalıştırınız.

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

Raporu Okuma

Her satır şunları gösterir: isabet sayısı, kaçırma sayısı ve kaynak satırı. 0 isabetli satırlar kapsam dışı koddur; olası ölü kodu veya eksik sınama durumlarını gösterir.

Dal Kapsamı

luacov dal kapsamını değil, satır kapsamını izler. Dal kapsamı için daha gelişmiş bir araç kullanınız veya her if/else yoluna yönelik sınama durumlarını elle ekleyiniz.

Özel Kapsam Kancası

Satır olayları için debug.sethook ile en küçük boyutlu bir kapsam kaydedici geliştiriniz.

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()

Kapsam Eşikleri

CI'da bir minimum kapsam eşiği belirleyiniz (ör. %80). Kapsam bunun altına düşerse derlemeyi başarısız sayınız. Bu, kazara oluşan ölü kodun birikmesini önler.

Sınama Araçlandırma Kalıpları

Kapsamın ötesinde, sınamalarınızı şunlarla araçlandırınız: yürütme süresi (yavaş sınamaları tespit etmek için), çağrı sayısı doğrulamaları (işlevlerin beklenen sayıda çağrıldığını doğrulamak için) ve değer yakalama (taklit işlevlere geçirilen bağımsız değişkenleri kaydetmek için).

Sınama Yalıtımı için Taklitler

Birimleri yalıtmak için sınama sırasında gerçek modülleri taklitlerle değiştiriniz. Gerçek işlevi saklayınız, yerine izleme amaçlı bir saplama yerleştiriniz ve sınamadan sonra geri yükleyiniz.

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

CI ile Tümleştirme

luacov'u CI iş akışınızda çalıştırınız. Değişiklikler arasındaki eğilimleri izlemek için kapsam raporlarını Coveralls veya Codecov'a yükleyiniz.

Kapsam Sorusu

luacov raporunda 0 kez çalıştırılan bir satır neyi gösterir?

Özet: Kod Kapsamı ve Sınama Ölçümlemesi

Satır kapsamını kaydetmek ve raporlar oluşturmak için luacov kullanın. Sürekli tümleştirme kapsam eşiklerini belirleyin. Özelleştirilmiş izleme için debug.sethook ile özel ölçümleme ekleyin. Birim sınamalarını yalıtmak ve çağrı sayılarını doğrulamak için benzetimler kullanın.

Sıkça Sorulan Sorular

“Kod Kapsamı ve Test Enstrümantasyonu” dersi ücretsiz mi?

Evet — “Kod Kapsamı ve Test Enstrümantasyonu” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Lua Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Lua Academy kursu toplamda 4 dersten oluşur.

“Kod Kapsamı ve Test Enstrümantasyonu” dersinde ne öğreneceğim?

luacov ile test kapsamını ölçün ve kapsam raporlarını yorumlayın. Lua Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Lua Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Lua Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Kod Kapsamı ve Test Enstrümantasyonu” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Lua Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Lua Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Ayrıntılı debug Kitaplığı
  2. MobDebug ile Uzaktan Hata Ayıklama
  3. LuaProfiler ile Profil Oluşturma
  4. Kod Kapsamı ve Test Enstrümantasyonu
← Lua Academy Sayfasına Dön