Cara Mendapatkan Perlindungan Kod untuk Ujian Golang
Gunakan Perintah Built -In Test GO untuk menjana data liputan: Run Go Test -cover./... Untuk memaparkan peratusan liputan setiap pakej, atau gunakan ujian Go -coverProfile = liputan.out. Mengintegrasikan Laporan Liputan di CI: Buat fail liputan.out dan muat naik melalui alat pihak ketiga seperti codecov atau coveralls, contohnya, muat naik menggunakan curl--data-binary @coverage.out https://codecov.io command. Pakej Pelbagai Menggabungkan Perlindungan Statistik: Menjana.
Apabila menjalankan ujian unit untuk bahasa Go, jika anda ingin mengetahui liputan kod, toolchain rasmi telah menyediakan cara yang sangat mudah. Dalam versi GO 1.20, kaedah mendapatkan liputan ujian lebih bersatu dan mudah. Izinkan saya memberitahu anda beberapa kaedah praktikal.

Gunakan Perintah Terbina dalam go test
untuk menjana data liputan
Perintah GO go test
sendiri menyokong output langsung maklumat liputan. Anda hanya perlu menambah parameter -cover
semasa menjalankan ujian.

Pergi ujian -cover./...
Ini memaparkan liputan peratusan untuk setiap pakej. Sekiranya anda ingin melihat lebih banyak maklumat mengenai fungsi atau pernyataan mana yang tidak dilindungi, anda boleh menghasilkan laporan HTML:
Pergi ujian -coverProfile = liputan.out./... Perlindungan Alat Pergi -html = liputan.out -o liputan.html
Kemudian buka coverage.html
dengan penyemak imbas anda dan anda dapat melihat garis mana yang dilindungi dan garis mana yang belum dilindungi.

Petua: Jika anda hanya mengambil berat tentang liputan pakej tertentu, anda boleh mengesannya secara langsung dalam direktori itu dan melaksanakan arahan.
Mengintegrasikan Laporan Liputan di CI
Banyak sistem integrasi yang berterusan (seperti tindakan GitHub, Gitlab CI) menyokong laporan liputan memuat naik. Anda boleh mula - mula menjana fail coverage.out
.
Proses asas adalah seperti berikut:
- Pasang alat CLI perkhidmatan yang sesuai
- Menjana fail liputan
- Muat naik laporan
Ambil Codecov sebagai contoh:
Pergi ujian -coverProfile = liputan.out./... curl--data-minary @coverage.out https://codecov.io
Perintah spesifik platform yang berbeza sedikit berbeza, tetapi idea keseluruhan adalah sama: menghasilkan laporan -> Ekstrak data -> analisis muat naik .
Pelbagai pakej menggabungkan liputan statistik
Jika anda mempunyai pelbagai subpackages dan ingin mengagregat liputan mereka ke dalam laporan keseluruhan, anda perlu melalui langkah demi langkah:
- Pertama menjana fail
.out
untuk setiap pakej - Kemudian gunakan
-coverprofile
dan-cover.mode
untuk menggabungkan semua hasil - Akhirnya, Gunakan
go tool cover
ke Output HTML
Contohnya:
Pergi ujian -cover -coverprofile = coverage1.out ./pkg1 Go Test -Cover -CoverProfile = coverage2.out ./pkg2 Perlindungan Alat Pergi -Mode = Count -var = ModeSet -O digabungkan.out coverage1.out coverage2.out Perlindungan Alat Pergi -html = digabungkan.out -o gabungan_coverage.html
Ini membolehkan anda mendapatkan laporan liputan bersatu yang meliputi pelbagai modul.
Pada dasarnya kaedah ini. Walaupun langkah -langkah operasi kelihatan agak terlalu banyak, hanya dengan membiasakan diri dengan arahan, ia sebenarnya akan berjalan dengan cepat setiap kali, dan ia dapat membantu anda menilai kualiti ujian dengan lebih baik.
Atas ialah kandungan terperinci Cara Mendapatkan Perlindungan Kod untuk Ujian Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT
Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



GoProvidesBuilt-InsupportForHandlingenvironmentVariablesViateTheospackage, EnablingDevelelperstoread, Set, danManageenvironmentDataSecurelyAndeFicienty.ToreAdAvariable, UseOS.Getenv ("Kunci")

Usegomodulesbyrunninggomodinittocreateago.modfile, whemanagesdependencyandversions.2.organizecodeintopackageshereacheachDirectoryisapackageWithaconsistentedPackAgename, PreferablyMatchingThedirectoreName, andStructureImportSbasedOnThemoDemoDemoDemoDemoMoDemoDemoduleMoMoDemoDemoDemoDemoduleMoMoDemoduleMoModulPath.3

Gunakan Go Generik dan Kontena/Senarai untuk mencapai cache LRU yang selamat; 2. Komponen teras termasuk peta, senarai berkaitan dua arah dan kunci mutex; 3. Dapatkan dan tambah operasi memastikan keselamatan bersamaan melalui kunci, dengan kerumitan masa O (1); 4. Apabila cache penuh, kemasukan terpanjang yang tidak digunakan akan dihapuskan secara automatik; 5. Dalam contohnya, cache dengan kapasiti 3 berjaya menghapuskan "B" yang paling lama tidak digunakan. Pelaksanaan ini sepenuhnya menyokong generik, cekap dan berskala.

Custombuildtagsingoallowconditionalcompilationbasedonenenvironment, arsitecture, orcustomscenariosbyusing // go: buildtagsatthetopoffiles, whatarethenenabledviagobuild-tags "tagname", supportinglogicalorsoperators & |

Tohandlermanicoroutines, digunakan dengan mudah

GobenchmarkingmeasurescodeperformanceTimingFunctionExecutionandMemoryusage, usingbuilt-intestingtools; penanda arasarwritten_test.gofileswithnamesstartingwithbenchmark, takeatesting.bparameter, andruntargetcontrollrolledbybytrolledbytrolledbytrollrolledbytrolledbytrolledbytrolledbytrolledbytrolledbytrolledbytrolledbytrolledbytrolledbytrolledbytrolled

Di mana sahaja, mod pemerhati boleh dilaksanakan melalui antara muka dan saluran, antara muka pemerhati boleh ditakrifkan, antara muka pemerhati termasuk kaedah kemas kini, struktur subjek mengekalkan senarai pemerhati dan saluran mesej, tambahkan pemerhati, maklumkan menghantar mesej, dan mencetuskan peristiwa, dan menyedari mekanisme pemberitahuan peristiwa yang longgar, yang sesuai untuk sistem yang didorong oleh peristiwa, pemberitahuan dan pemberitahuan mesej dan senario lain.

Kunci untuk mengintegrasikan dengan Apachekafka dengan GO adalah untuk memilih perpustakaan klien yang betul dan mengkonfigurasi pengeluar dan pengguna dengan betul. Pertama sekali, adalah disyorkan untuk menggunakan perpustakaan Segmentio/Kafka-Go. Kerana ia ringkas dan mematuhi tabiat bahasa Go, selepas pemasangan melalui getgetgithub.com/segmentio/kafka-go, anda boleh membuat penulis untuk menghantar mesej dan menetapkan addr, topik dan dasar pengimbang; Kemudian konfigurasikan pembaca untuk merealisasikan penggunaan mesej dengan menentukan broker, topik dan kumpulan, kumpulan sokongan pengguna dan peruntukan partition manual; Pastikan anda menggunakan konteks untuk mengawal masa, membolehkan TLS/SASL untuk memastikan keselamatan,
