Rumah >pembangunan bahagian belakang >Golang >Cara membandingkan nilai liputan ujian bagi kes ujian Golang dengan ambang tertentu

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

WBOY
WBOYke hadapan
2024-02-08 23:39:20419semak imbas

如何将 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

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

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam