Rumah >pembangunan bahagian belakang >Golang >Pergi uji bendera '-run -' melaksanakan ujian dengan lebih pantas

Pergi uji bendera '-run -' melaksanakan ujian dengan lebih pantas

王林
王林ke hadapan
2024-02-09 19:21:08417semak imbas

Go test“-run -”标志执行测试的速度要快得多

Editor PHP Apple menegaskan semasa memperkenalkan rangka kerja ujian Go test bahawa menggunakan bendera "-run -" boleh meningkatkan kelajuan pelaksanaan ujian dengan ketara. Bendera ini memberitahu ujian Go untuk hanya menjalankan fungsi ujian dan bukan sebarang kod contoh. Ini membolehkan rangka kerja ujian melangkau proses permulaan dan pembersihan yang tidak perlu, menghasilkan pelaksanaan ujian yang lebih pantas. Bagi pembangun yang perlu melakukan ujian dengan kerap, teknik ini sangat berguna dan boleh meningkatkan kecekapan kerja.

Kandungan soalan

Saya sedang melihat beberapa penanda aras di https://github.com/roaringbitmap/roaring

Apabila menjalankan penanda aras tertentu menggunakan -run - (seperti yang dinyatakan dalam ulasan): go test -bench benchmarknexts -benchmem -run - nampaknya dilaksanakan dengan lebih pantas, sekurang-kurangnya menjalankannya tanpa go test -bench benchmarknexts -benchmem -run - 似乎执行得更快,至少在没有 -run - nampaknya mempunyai overhed awal selama 5 saat, yang juga diplotkan:

==roaring==
{1,2,3,4,5,100,1000}
{3,4,1000}
{}
Cardinality:  7
Contains 3?  true
1
3
4
5
1000

Wrote  22  bytes
I wrote the content to a byte stream and read it back.
size before run optimize: 1810 bytes, and after: 38 bytes.

Memandangkan bendera -run menjalankan ujian berdasarkan corak regex, nampaknya ada sesuatu yang dikecualikan di sini, tetapi sebenarnya kedua-duanya menjalankan ujian yang sama, satu-satunya perbezaan ialah overhed awal.

Penyelesaian

go test "-run -" flag melaksanakan ujian dengan lebih pantas

Inilah hasil yang diharapkan. Ia lebih pantas apabila anda tidak menjalankan sebarang ujian.

Untuk melihat apa yang sedang dilaksanakan, tukar -v 选项添加到 go test Laksanakan.

Tidak menjalankan ujian:

go clean -testcache && go test -bench benchmarknexts -benchmem -run - -v

Jalankan semua ujian:

go clean -testcache && go test -bench benchmarknexts -benchmem -v`

Atau, kerana -run . setara dengan semua ujian,

go clean -testcache && go test -bench benchmarknexts -benchmem -run . -v

go ialah alat untuk mengurus kod sumber go.

Logo ujian

-run regexp
    Run only those tests, examples, and fuzz tests matching the regular
    expression.

-v
    Verbose output: log all tests as they are run.

Bina dan uji cache

Arahan go juga menyimpan hasil ujian pakej yang berjaya. Lihat "Ujian Bantuan" untuk mendapatkan maklumat lanjut. Menjalankan "go clean -testcache" akan memadamkan semua keputusan ujian cache (tetapi bukan hasil binaan cache).

Atas ialah kandungan terperinci Pergi uji bendera '-run -' melaksanakan ujian dengan lebih pantas. 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