crpcut (diucapkan "omong kosong cut") adalah compartmented Kuat POSIX C ++ Satuan Tester. Dengan crpcut mudah untuk menulis tes yang kerangka unit-test lainnya tidak bisa mengelola.
contoh Pengantar:
Contoh pengujian bagian dari std :: string:
& Nbsp; # include
& Nbsp; #include
& Nbsp; struct apastr // perlengkapan untuk tes mosts
& Nbsp; {
& Nbsp; apastr (): s ("APA") {}
& Nbsp; std :: string s;
& Nbsp;};
& Nbsp; TestSuite (dasar)
& Nbsp; {
& Nbsp; TEST (default_constr_and_destr)
& Nbsp; {
& Nbsp; std :: string s;
& Nbsp; ASSERT_TRUE (s.empty ());
& Nbsp; ASSERT_EQ (s.length (), 0);
& Nbsp;}
& Nbsp; TEST (constr_from_char_array, apastr,
& Nbsp; DEPENDS_ON (default_constr_and_destr))
& Nbsp; {
& Nbsp; ASSERT_EQ (s.length (), 3UL);
& Nbsp;}
& Nbsp; TEST (di, apastr,
& Nbsp; DEPENDS_ON (default_constr_and_destr))
& Nbsp; {
& Nbsp; ASSERT_EQ (s.at (1), 'p');
& Nbsp;}
& Nbsp;}
& Nbsp; TestSuite (kesalahan, DEPENDS_ON (ALL_TESTS (dasar)))
& Nbsp; {
& Nbsp; TEST (at_out_of_range, apastr,
& Nbsp; EXPECT_EXCEPTION (std :: out_of_range))
& Nbsp; {
& Nbsp; s.at (4);
& Nbsp;}
& Nbsp; TEST (index_oper_out_of_range, apastr,
& Nbsp; EXPECT_SIGNAL_DEATH (SIGABRT),
& Nbsp; NO_CORE_FILE)
& Nbsp; {
& Nbsp; s [4];
& Nbsp;}
& Nbsp;}
& Nbsp; int main (int argc, char * argv [])
& Nbsp; {
& Nbsp; kembali crpcut :: test_case_factory :: run_test (argc, argv);
& Nbsp;}
Tes manfaat yang sama dari yang dikelompokkan menjadi tes-suite. Test-suite dapat bergantung pada tes-suite lainnya, yang berarti bahwa tes yang terkandung hanya akan dijalankan jika semua tes itu tergantung pada telah selesai dengan sukses. Hasil dapat divalidasi menggunakan sejumlah ASSERT macro. Tes dapat menggunakan perlengkapan untuk mengekspresikan isi umum. Tes dapat diharapkan untuk keluar dengan pengecualian, atau mati. Harapan yang tidak terpenuhi adalah kesalahan. Pesan pada stderr dan stdout yang gaught, dan termasuk dalam log hasil.
Mengapa crpcut
Yang paling penting, itu harus mudah untuk menulis tes. Dengan crpcut, Anda fokus pada struktur dan uji logika Anda, bukan pada batas-batas yang dikenakan oleh lingkungan pengujian Anda.
Dengan crpcut, setiap kasus uji berjalan dalam prosesnya sendiri dan direktori kerja sendiri. Jika ujian gagal, proses dihentikan segera, sebelum melakukan kerusakan lebih lanjut. Ini berarti bahwa setiap test case dimulai dari yang bersih, tidak terpengaruh oleh tes lainnya. Ini adalah kompartementalisasi tersebut.
Ini juga berarti bahwa test suite terus, bahkan jika tes crash. Anda dapat mengatur tenggat waktu untuk uji kasus, dan jika waktu memungkinkan serius tekor, proses ujian dibunuh. Kedua membentuk bagian ketahanan.
Anda dapat menentukan ketergantungan antara kasus uji dan antara test suite, sehingga jika tes mendasar gagal, tes yang didasarkan pada fungsi mendasar bahkan tidak akan dijalankan.
Proses utama crpcut tidak memiliki memori dinamis dialokasikan pada saat proses ujian dimulai, sehingga Anda dapat menjalankan crpcut menggunakan alat tes memori, seperti Valgrind, dan jika ada memori yang dialokasikan saat proses ujian berakhir, Anda dapat yakin bahwa Anda telah menemukan kebocoran memori dalam ujian Anda.
Jika Anda memiliki CPU multi-core, mungkin bermanfaat untuk menjalankan beberapa uji kasus secara paralel. crpcut memungkinkan itu.
Jika ada file yang tertinggal dalam proses test 'direktori kerja setelah proses uji kasus telah dihentikan, kasus uji dianggap gagal. Direktori kerja tersentuh oleh crpcut, bagi Anda untuk memeriksa
Apa yang baru dalam rilis ini:.
- Versi ini mendukung distribusi dengan versi lama CMake.
Apa yang baru dalam versi 1.9.1:
- libcrpcut_basic.so dibangun tapi tidak diinstal
Apa yang baru dalam versi 1.8.4:
- Ini adalah rilis bugfix minor memperbaiki masalah instrumentasi valgrind , dependensi uji dan rusak durasi uji atribut dalam laporan XML .
Apa yang baru dalam versi 1.8.2:
- peningkatan fitur kecil ini membuat parameter baris perintah - -timeout-multiplier = faktor sekarang juga memiliki efek pada timeout untuk konstruksi dan penghancuran perlengkapan.
Apa yang baru dalam versi 1.8.1:
- peningkatan fitur kecil ini membuat parameter baris perintah - -timeout-multiplier = faktor sekarang juga memiliki efek pada timeout untuk konstruksi dan penghancuran perlengkapan.
Apa yang baru dalam versi 1.7.2:
- Versi ini perbaikan bug minor dengan uji NO_CORE_FILE modifikator yang terjadi pada Linux saat / proc / sys / kernel / core_pattern dijelaskan pipa dump inti untuk program daripada menyimpan ke file.
Apa yang baru dalam versi 1.6.1:
- Ini adalah sebuah patch untuk bug yang dalam beberapa kasus yang disebabkan cacat XML-output dengan hilang dekat pada daftar blocked_tests.
Apa yang baru dalam versi 1.6.0:
- Fitur baru merupakan parameter opsional tambahan untuk ASSERT_THROW () dan VERIFY_THROW () yang memeriksa nilai objek pengecualian, versi dua istream berbasis get_parameter () untuk memilih nilai yang dikirimkan dari baris perintah, dan pilihan untuk membangun libcrpcut perpustakaan sebagai statis atau bersama.
Apa yang baru dalam versi 1.5.0:
- Fitur baru utama adalah penandaan tes. Tags adalah metode seleksi uji orthogonal dengan yang TestSuites. Tags juga dapat digunakan untuk membedakan antara tes yang sangat penting (misalnya regresi) dan uji yang non-kritis (misalnya fungsi yang sedang dikerjakan.)
- dukungan eksperimental juga tersedia untuk dekorasi laporan pengujian dengan, misalnya, lolos ANSI-warna.
Komentar tidak ditemukan