Rumah > pembangunan bahagian belakang > C++ > C Liputan Ujian di C adalah dan akan mengajar anda cara menggunakan

C Liputan Ujian di C adalah dan akan mengajar anda cara menggunakan

Linda Hamilton
Lepaskan: 2025-01-30 04:04:09
asal
560 orang telah melayarinya

Perlindungan ujian perisian sangat penting dalam pembangunan perisian. Ujian ini memastikan bahawa perisian berjalan seperti yang diharapkan, dan liputan ujian memastikan anda menyemak semua kemungkinan kod. Banyak bahasa moden mempunyai perpustakaan atau alat yang menjana liputan liputan, tetapi adakah anda tahu bahawa terdapat alat "asli" untuk bahasa C?

mari kita mulakan dengan kod mudah yang mengembalikan kod ± 42:

<code class="language-c">#include <stdbool.h>

int return_42(bool ret_neg) {
  if (ret_neg)
    return -42;
  return 42;
}</code>
Salin selepas log masuk

sekarang adalah fail ujian mudah:

<code class="language-c">#include <assert.h>
#include <stdbool.h>
#include <stdio.h>

int return_42(bool ret_neg);

int main() {
  assert(return_42(false) == 42);
  assert(return_42(true) == -42);
  puts("Nice");
  return 0;
}</code>
Salin selepas log masuk

Sekarang, kita boleh menggunakan pengkompil GCC/CC dan -fprofile-arcs dan -ftest-coverage untuk menyusun kod.

Ini akan menghasilkan fail dengan fail yang boleh dilaksanakan dan nama lanjutan .gcno.

Selepas membuat fail ini, kami menjalankan ujian dan membuat fail dengan lanjutan .gcda selepas operasi.

Dengan fail yang baru dibuat ini, kita boleh menggunakan alat GCOV untuk memprosesnya (sila pasangkan GCOV terlebih dahulu), kemudian laksanakan GCOV dan lulus dalam .gcda dan .gcno nama fail (biasanya mereka mempunyai nama yang sama seperti .c fail, nama yang sama, fail dalam nama yang sama, nama yang sama, fail dalam nama yang sama, fail, nama yang sama, fail, fail dalam nama yang sama, fail, fail, fail, Fail, fail, fail, fail, fail, fail, fail, fail, fail, fail, fail, fail, fail, fail, fail, fail itu sama nama, fail, tetapi mungkin berbeza). Ini akan menghasilkan fail dengan sambungan .gcov. GCOV akan memberikan ringkasan kecil mengenai liputan, tetapi untuk lebih daripada ujian mudah (contohnya, saya mempunyai lebih daripada 120 ujian di perpustakaan), kita perlu memaparkan hasil yang lebih intuitif.

Seterusnya, kami akan menggunakan LCOV (sila pasang LCOV terlebih dahulu), dan gunakan -c, -d . dan -o foobar.info untuk menjalankan LCOV. Ia akan menghasilkan fail yang dipanggil dan mencetak liputan liputan. Malangnya, ringkasan ini tidak menunjukkan fungsi mana yang telah diperiksa, tetapi dengan fail foobar.info yang dicipta, kita boleh menggunakan .info untuk menjalankan LCOV, yang akan mencetak ringkasan bentuk yang lebih mudah dibaca. Walau bagaimanapun, kita masih mendapat satu peratusan, dan kita tidak dapat melihat garis mana yang telah diperiksa, jadi marilah kita memasuki langkah terakhir, menjadikan hasilnya lebih mudah untuk digambarkan. -l foobar.info

hanya gunakan GenHTML untuk lulus

dan foobar.info tanda. GenHTML akan menghasilkan folder yang mengandungi liputan yang lebih mudah dibaca (anda boleh membuka fail HTML ini dengan cara. Cara kegemaran peribadi saya untuk dibuka ialah menggunakan -o bar_html). python -m http.server -d bar_html

Cobertura de teste em C existe e vou te ensinar a usar

Anda juga boleh menggunakan Clang, tetapi tanda akan berubah. Oleh kerana saya tidak seperti Clang, dan saya rasa bahawa hasil akhir tidak cantik, saya tidak belajar di -Depth, tetapi sejauh saya cuba, semua fungsi boleh berjalan dengan LLVM. Alat LLVM. Cobertura de teste em C existe e vou te ensinar a usar

Akhirnya, GenHTML mempunyai banyak tanda yang disesuaikan.

Cobertura de teste em C existe e vou te ensinar a usar

Cobertura de teste em C existe e vou te ensinar a usar Baiklah, di sini ada hari ini, sampai jumpa lagi!

Atas ialah kandungan terperinci C Liputan Ujian di C adalah dan akan mengajar anda cara menggunakan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan