Saya mengalami masalah dalam mencari tahu cara menyiapkan kerangka pengujian dan dapat digunakan dalam Visual Studio 2008 karena C++
mungkin dengan rangkaian pengujian unit bawaan.
Tautan atau tutorial apa pun akan dihargai.
Saya mengalami masalah dalam mencari tahu cara menyiapkan kerangka pengujian dan dapat digunakan dalam Visual Studio 2008 karena C++
mungkin dengan rangkaian pengujian unit bawaan.
Tautan atau tutorial apa pun akan dihargai.
Jawaban:
Halaman ini mungkin membantu, mengulas beberapa kerangka kerja pengujian unit C ++:
Lihat CPPUnitLite atau CPPUnitLite2 .
CPPUnitLite dibuat oleh Michael Feathers, yang awalnya mem-porting JUnit Java ke C ++ sebagai CPPUnit (CPPUnit mencoba meniru model pengembangan JUnit - tetapi C ++ kekurangan fitur Java [mis. Refleksi] agar mudah digunakan).
CPPUnitLite mencoba membuat kerangka kerja pengujian gaya C ++ yang sebenarnya, bukan kerangka kerja Java yang di-porting ke C ++. (Saya memparafrasekan dari buku Feather's Working Effectively with Legacy Code ). CPPUnitLite2 tampaknya merupakan penulisan ulang lainnya, dengan lebih banyak fitur dan perbaikan bug.
Saya juga baru saja menemukan UnitTest ++ yang menyertakan barang-barang dari CPPUnitLite2 dan beberapa kerangka kerja lainnya.
Microsoft telah merilis WinUnit .
Juga periksa Catch atau Doctest
sumber
Ada cara untuk menguji C ++ tidak terkelola menggunakan kerangka kerja pengujian bawaan dalam Visual Studio 2008 . Jika Anda membuat Proyek Uji C ++, menggunakan C ++ / CLI, Anda kemudian dapat melakukan panggilan ke DLL yang tidak dikelola. Anda harus mengganti dukungan Waktu Proses Bahasa Umum ke / clr dari / clr: safe jika Anda ingin menguji kode yang ditulis dalam C ++ yang tidak dikelola.
Saya memiliki detail langkah demi langkah di blog saya di sini: http://msujaws.wordpress.com/2009/05/06/unit-testing-mfc-with-mstest/
sumber
Berikut adalah pendekatan yang saya gunakan untuk menguji modul IIS URL Rewrite di Microsoft (ini berbasis baris perintah, tetapi harus bekerja untuk VS juga):
Berikut ini contohnya:
Dengan pendekatan ini, orang tidak perlu belajar terlalu banyak tentang C ++ / CLI, semua tes yang sebenarnya akan dilakukan dalam C ++ native dan kelas TestShim akan digunakan untuk 'mempublikasikan' tes ke MSTest.exe (atau membuatnya terlihat ).
Untuk menambahkan pengujian baru, Anda cukup mendeklarasikan metode [TestMethod] void NewTest () {:: NewTest ();} baru dan fungsi native void NewTest () baru. Tidak ada makro, tidak ada trik, lurus ke depan.
Sekarang, file heade bersifat opsional, tetapi dapat digunakan untuk mengekspos metode kelas Assert dengan tanda tangan asli C ++ (mis. Wchar_t * bukan Stirng ^), sehingga Anda dapat membuatnya tetap dekat dengan C ++ dan jauh dari C ++ / CLI :
Berikut ini contohnya:
HTH
sumber
Secara pribadi, saya lebih suka WinUnit karena tidak mengharuskan saya menulis apa pun kecuali untuk pengujian saya (saya membangun .dll sebagai pengujian, bukan exe). Saya baru saja membangun sebuah proyek, dan mengarahkan WinUnit.exe ke direktori keluaran pengujian saya dan menjalankan semua yang ditemukannya. Anda dapat mengunduh proyek WinUnit di sini . (MSDN sekarang mengharuskan Anda untuk mengunduh seluruh masalah, bukan artikelnya. WinUnit disertakan di dalamnya.)
sumber
Kerangka yang disertakan dengan VS9 adalah .NET, tetapi Anda dapat menulis pengujian dalam C ++ / CLI, selama Anda merasa nyaman mempelajari beberapa isme .NET, Anda seharusnya dapat menguji sebagian besar kode C ++.
boost.test dan googletest terlihat cukup mirip, tetapi diadaptasi untuk penggunaan yang sedikit berbeda. Keduanya memiliki komponen biner, jadi Anda memerlukan proyek tambahan dalam solusi Anda untuk mengompilasi dan menjalankan pengujian.
Kerangka kerja yang kami gunakan adalah CxxTest , yang jauh lebih ringan; itu hanya header, dan menggunakan skrip Perl (!) untuk mengikis informasi rangkaian pengujian dari header Anda (suite mewarisi dari CxxTest :: Base, semua nama metode pengujian Anda dimulai dengan "test"). Jelas, ini mengharuskan Anda mendapatkan Perl dari satu sumber atau sumber lain , yang menambahkan overhead ke pengaturan lingkungan build Anda.
sumber
Saya menggunakan UnitTest ++ .
Bertahun-tahun sejak saya membuat posting ini, sumber telah dipindahkan dari SourceForge ke github. Juga contoh tutorial sekarang lebih agnostik - tidak masuk ke konfigurasi atau pengaturan proyek sama sekali.
Saya ragu itu masih akan berfungsi untuk Visual Studio 6 karena file proyek sekarang dibuat melalui CMake. Jika Anda masih membutuhkan dukungan versi lama, Anda bisa mendapatkan versi terakhir yang tersedia di bawah cabang SourceForge .
sumber
Alat yang telah disebutkan di sini adalah semua alat baris perintah. Jika Anda mencari solusi yang lebih terintegrasi, lihat cfix studio , yang merupakan AddIn Visual Studio untuk pengujian unit C / C ++. Ini sangat mirip dengan TestDriven.Net, tetapi untuk (tidak dikelola) C / C ++ daripada .NET.
sumber
Saya telah menggunakan CppUnit dengan VS2005 dan Eclipse. Wiki sangat menyeluruh (terutama jika Anda sudah familiar dengan JUnit).
sumber
Saya tidak 100% yakin tentang VS2008, tetapi saya tahu bahwa kerangka kerja Unit Testing yang dikirimkan oleh Microsoft dalam VS2005 sebagai bagian dari Team Suite mereka hanya untuk .NET, bukan C ++
Saya telah menggunakan CppUnit juga dan tidak apa-apa. Sama seperti NUnit / JUnit / sebagainya.
Jika Anda telah menggunakan boost, mereka juga memiliki pustaka pengujian unit
Orang-orang di belakang peningkatan memiliki beberapa kode pengkodean yang serius , jadi saya akan mengatakan kerangka kerja mereka seharusnya cukup bagus, tetapi mungkin bukan yang paling ramah pengguna :-)
sumber
Saya menyukai CxxTest juga karena alasan yang sama. Ini hanya file header jadi tidak perlu menghubungkan. Anda tidak terjebak dengan Perl karena ada juga pelari Python. Saya akan segera meninjau perpustakaan google. Barang Boost menarik terlalu banyak bagasi lain.
sumber
Penguji unit untuk Visual Studio 2008 hanya untuk kode NET. Sejauh yang saya tahu.
Saya menggunakan CppUnit di Visual Studio 2005 dan ternyata cukup bagus.
Sejauh yang saya ingat, penyiapannya relatif tidak menyakitkan. Pastikan bahwa dalam proyek pengujian Anda, linker (Linker → Input → Ketergantungan Tambahan) menyertakan cppunitd.lib.
Lalu,
#include <cppunit/extensions/HelperMacros.h>
di header Anda.Anda kemudian dapat mengikuti langkah-langkah di http://cppunit.sourceforge.net/doc/1.11.6/cppunit_cookbook.html agar kelas pengujian Anda berfungsi.
sumber
Saya menderita untuk mengimplementasikan unit testing untuk aplikasi C ++ tidak terkelola di lingkungan Windows dengan Visual Studio. Jadi saya berhasil mengatasi dan menulis posting sebagai panduan langkah demi langkah untuk pengujian unit aplikasi C ++ yang tidak terkelola. Saya harap ini dapat membantu Anda.
Uji unit untuk C ++ tidak terkelola di Visual Studio
sumber