GoogleTest vs CppUnit: fakta

Dalam proses pengaturan C++ unit pengujian kerangka kerja untuk tahun-tahun berikutnya kami terpilih GoogleTest dan CppUnit. Saya memiliki beberapa pengalaman dengan baik dan saya berat preferensi GoogleTest. Lagian untuk meyakinkan bos saya aku butuh fakta jadi saya melakukan beberapa bacaan di Internet, termasuk manual, halaman wiki dan beberapa sumber. Saya datang dengan daftar GoogleTest kelebihan dan tunggal CppUnit keuntungan(graphic tes pelari). Di sini mereka diperintahkan oleh dirasakan kegunaan:

  • INSTANTIATE_TEST_CASE_P untuk instantiate sebuah kasus uji dengan parameter yang anda inginkan, termasuk produk Cartesian
  • FRIEND_TEST untuk pengujian pribadi anggota kelas(untuk semua warisan kode)
  • balik menegaskan ke breakpoints
  • non-fatal menegaskan
  • "out of the box" googlemock integrasi
  • otomatis tes deteksi, tidak perlu untuk menghitung mereka
  • tes dapat dinonaktifkan dan diaktifkan
  • tes untuk menjalankan dapat dipilih menggunakan nama pola
  • nilai/jenis-parameter tes
  • user-defined predikat menegaskan
  • kematian tes
  • jauh lebih kaya set menegaskan
  • jenis menegaskan
  • menyatakan pada subrutin
  • tambahan info debug dapat ditambahkan untuk menegaskan menggunakan <<
  • RecordProperty memancarkan nilai terakhir dari properti untuk XML output
  • SCOPED_TRACE membantu memahami konteks pernyataan kegagalan yang berasal dari dalam sub-rutin atau loop.
  • xUnit XML output, dapat ditunjukkan oleh Jenkins langsung tanpa transformasi XSLT di antara
  • mendukung kustom jenis printer
  • waktu yang dikonsumsi oleh tes indikasi(saya menduga ini juga dimungkinkan dengan CppUnit tapi aku tidak tahu itu belum)
  • tes pendengar acara API (user-defined plugin)
  • tes menyeret
  • tidak ada pengecualian dan RTTI

Aku benar dalam asumsi bahwa semua hal di atas tidak didukung oleh CppUnit? Apakah ada aplikasi yang berguna GoogleTest fitur tidak tersedia di CppUnit saya hilang?

Dan last but not least: Apakah ada bagus CppUnit fitur yang GoogleTest kekurangan?

Terima kasih!!!

Mengomentari pertanyaan (3)

Jika anda menggunakan versi yang lebih tua dari gcc compiler atau jika kode anda di bawah tes berjalan pada vxWorks (atau VxSim) anda mungkin memiliki kesempatan yang lebih baik dengan cppUnit dari Googletest framework.

Di sisi lain, fitur lain dari googletest framework adalah ketersediaan dari 3 tingkat yang berbeda dari setup/teardown:

  • per program
  • per kasus uji (atau kelompok uji)
  • per individu contoh-contoh tes

Tidak yakin apakah ini didukung dalam cppUnit, tapi ini mungkin akan sangat berguna, terutama dengan sistem warisan.

Juga, ada googletest plugin untuk Eclipse CDT.

Komentar (0)

Mereka adalah manfaat yang saya lihat. Ada beberapa GUI tes pelari:

  1. https://github.com/ospector/gtest-gbar
  2. https://github.com/SandyChapman/gtest-runner-qt

Saya telah menggunakan salah satu pertama dan bekerja dengan cukup baik meskipun itu's dalam pengembangan dan membutuhkan pekerjaan. Don't tahu jika ada pilihan lain.

Komentar (0)

Jika anda belum't melihat xUnit++, saya membuatnya secara khusus karena saya tidak senang dengan apa yang tersedia (termasuk gtest). Sebagian besar dari anda daftar didukung, dan jika tidak, jika itu's "harus memiliki" fitur, I'd mungkin bersedia untuk menambahkannya.

Komentar (4)