Cara membandingkan nilai liputan ujian bagi kes ujian Golang dengan ambang tertentu

WBOY
Lepaskan: 2024-02-08 23:39:20
ke hadapan
373 orang telah melayarinya

如何将 Golang 测试用例的测试覆盖率值与特定阈值进行比较

Dalam artikel ini, editor php Banana akan memperkenalkan kepada anda cara membandingkan nilai liputan ujian kes ujian Golang dengan ambang tertentu. Dalam pembangunan perisian, liputan ujian ialah metrik penting, yang mengukur sejauh mana kes ujian meliputi kod. Dengan membandingkan nilai liputan ujian dengan ambang tertentu, kami boleh menilai kualiti kes ujian dan menemui liputan ujian yang tidak mencukupi dalam masa, dengan itu meningkatkan kualiti dan kestabilan kod. Dalam artikel ini, kami akan menerangkan cara menggunakan alat ujian dan alat liputan kod Golang untuk mengira liputan ujian dan membandingkannya dengan ambang tertentu. Sama ada anda seorang pemula atau pembangun berpengalaman, artikel ini akan memberikan anda petua dan kaedah praktikal untuk membantu anda mengurus dan menilai liputan ujian dengan lebih baik. Mari kita meneroka bersama-sama!

Kandungan soalan

Saya ingin mendapatkan liputan ujian dan membandingkannya dengan ambang yang ditentukan pengguna. Saya mencuba kod di bawah dalam makefile yang saya rujuk dari pautan ini. Ia ditulis dalam fail .yml, tetapi saya cuba menulisnya dalam makefile.

.PHONY: lint    
testcoverage=$(go tool cover -func coverage.out | grep total | grep -Eo '[0-9]+\.[0-9]+')
echo ${testcoverage}
if (${testcoverage} -lt 50 ); then \
  echo "Please add more unit tests or adjust threshold to a lower value."; \
  echo "Failed"
  exit 1
else \
  echo "OK"; \
fi
Salin selepas log masuk

Ia tidak mencetak apa-apa pada echo ${totaltestcoverage} dan memberikan jawapan "ok" walaupun jumlah liputan ujian saya ialah 40.

Bolehkah sesiapa membantu saya mencari cara yang lebih baik untuk mendapatkan liputan ujian dan membandingkan dengan ambang yang ditentukan pengguna?

Terima kasih terlebih dahulu.

Penyelesaian

Anda boleh mencuba ini

.PHONY: lint

testcoverage := $(shell go tool cover -func=coverage.out | grep total | grep -Eo '[0-9]+\.[0-9]+')
threshold = 50

test:
    @go test -coverprofile=coverage.out -covermode=count  ./...

check-coverage:
    @echo "Test coverage: $(testcoverage)"
    @echo "Test Threshold: $(threshold)"
    @echo "-----------------------"

    @if [ "$(shell echo "$(testcoverage) < $(threshold)" | bc -l)" -eq 1 ]; then \
        echo "Please add more unit tests or adjust the threshold to a lower value."; \
        echo "Failed"; \
        exit 1; \
    else \
        echo "OK"; \
    fi
Salin selepas log masuk

Atas ialah kandungan terperinci Cara membandingkan nilai liputan ujian bagi kes ujian Golang dengan ambang tertentu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!