Bagikan melalui


Menggunakan Boost.Test untuk C++ di Visual Studio

Pada Visual Studio 2017 dan yang lebih baru, adaptor uji Boost.Test diintegrasikan ke dalam IDE Visual Studio. Ini adalah komponen pengembangan Desktop dengan beban kerja C++.

Adaptor Pengujian untuk Boost.Test

Jika Anda tidak menginstal pengembangan Desktop dengan beban kerja C++, buka Visual Studio Installer. Pilih beban kerja Pengembangan desktop dengan C++, lalu pilih Ubah.

Menginstal Boost

Boost.Test membutuhkan Boost! Jika Anda tidak menginstal Boost, sebaiknya Anda menggunakan manajer paket Vcpkg.

  1. Ikuti petunjuk di Vcpkg: manajer paket C++ untuk Windows untuk menginstal vcpkg (jika Anda belum memilikinya).

  2. Instal pustaka dinamis atau statis Boost.Test:

    • Jalankan vcpkg install boost-test untuk menginstal pustaka dinamis Boost.Test.

      -atau-

    • Jalankan vcpkg install boost-test:x86-windows-static untuk menginstal pustaka statis Boost.Test.

  3. Jalankan vcpkg integrate install untuk mengonfigurasi Visual Studio dengan pustaka dan menyertakan jalur ke header dan biner Boost.

Anda memiliki pilihan dalam cara mengonfigurasi pengujian dalam solusi Anda di Visual Studio: Anda dapat menyertakan kode pengujian dalam proyek yang sedang diuji, atau Anda dapat membuat proyek pengujian terpisah untuk pengujian Anda. Kedua pilihan memiliki keuntungan dan kerugian.

Menambahkan pengujian di dalam proyek Anda

Di Visual Studio 2017 versi 15.6 dan yang lebih baru, Anda dapat menambahkan templat item untuk pengujian ke dalam proyek Anda. Baik pengujian maupun kode Anda berada dalam proyek yang sama. Anda harus membuat konfigurasi build terpisah untuk menghasilkan build pengujian. Dan, Anda harus menjauhkan pengujian dari build debug dan rilis Anda.

Dalam Visual Studio 2017 versi 15.5, tidak ada proyek pengujian atau templat item yang telah dikonfigurasi sebelumnya yang tersedia untuk Boost.Test. Gunakan instruksi untuk membuat dan mengonfigurasi proyek pengujian terpisah.

Membuat item Boost.Test

  1. Untuk membuat file .cpp untuk pengujian Anda, klik kanan pada simpul proyek di Penjelajah Solusi dan pilih Tambahkan>Item Baru.

  2. Dalam dialog Tambahkan Item Baru, perluasVisual C++>Test yang Terinstal>. Pilih Boost.Test, lalu pilih Tambahkan untuk menambahkan Test.cpp ke proyek Anda.

    Templat Item Boost.Test

File Test.cpp baru berisi metode pengujian sampel. File ini adalah tempat Anda dapat menyertakan file header Anda sendiri dan menulis pengujian untuk aplikasi Anda.

File pengujian juga menggunakan makro untuk menentukan rutinitas baru main untuk konfigurasi pengujian. Jika Anda membangun proyek sekarang, Anda akan melihat kesalahan LNK2005, seperti "_main sudah ditentukan di main.obj."

Membuat dan memperbarui konfigurasi build

  1. Untuk membuat konfigurasi pengujian, pada bilah menu, pilih Build>Configuration Manager. Dalam dialog Configuration Manager, buka menu dropdown di bawah Konfigurasi solusi aktif dan pilih Baru. Dalam dialog Konfigurasi Solusi Baru, masukkan nama seperti "Debug UnitTests". Pada bagian Salin pengaturan dari, pilih Debug, lalu pilih Oke.

  2. Kecualikan kode pengujian dari konfigurasi Debug dan Rilis Anda: Di Penjelajah Solusi, klik kanan Test.cpp dan pilih Properti. Dalam dialog Halaman Properti, pilih Semua Konfigurasi di menu dropdown Konfigurasi. Pilih Properti> KonfigurasiUmum dan buka menu dropdown untuk properti Dikecualikan Dari Build. Pilih Ya, lalu pilih Terapkan untuk menyimpan perubahan Anda.

  3. Untuk menyertakan kode pengujian dalam konfigurasi Debug UnitTests Anda, dalam dialog Halaman Properti, pilih Debug UnitTests di menu dropdown Konfigurasi. Pilih Tidak di properti Dikecualikan Dari Build, lalu pilih OK untuk menyimpan perubahan Anda.

  4. Kecualikan kode utama dari konfigurasi Debug UnitTests Anda. Di Penjelajah Solusi, klik kanan pada file yang berisi fungsi Anda main dan pilih Properti. Dalam dialog Halaman Properti, pilih Semua Konfigurasi di menu dropdown Konfigurasi. Pilih Properti> KonfigurasiUmum dan buka menu dropdown untuk properti Dikecualikan Dari Build. Pilih Ya, lalu pilih Oke untuk menyimpan perubahan Anda.

  5. Atur Konfigurasi Solusi ke Debug UnitTests, lalu build proyek Anda untuk mengaktifkan Test Explorer untuk menemukan metode.

Selama nama konfigurasi yang Anda buat dimulai dengan kata "Debug" atau "Rilis", pustaka Boost.Test yang sesuai akan diambil secara otomatis.

Templat item menggunakan varian header tunggal Boost.Test, tetapi Anda dapat mengubah jalur #include untuk menggunakan varian pustaka mandiri. Untuk informasi selengkapnya, lihat Menambahkan direktif sertakan.

Membuat proyek pengujian terpisah

Dalam banyak kasus, lebih mudah untuk menggunakan proyek terpisah untuk pengujian Anda. Anda tidak perlu membuat konfigurasi pengujian khusus untuk proyek Anda. Atau, kecualikan file pengujian dari build Debug dan Rilis.

Untuk membuat proyek pengujian terpisah

  1. Di Penjelajah Solusi, klik kanan node solusi dan pilih Tambahkan>Proyek Baru.

  2. Dalam dialog Tambahkan proyek baru, pilih C++, Windows, dan Konsol di menu dropdown filter. Pilih templat Aplikasi Konsol, lalu pilih Berikutnya.

  3. Beri nama proyek dan pilih Buat.

  4. main Hapus fungsi dalam file .cpp.

  5. Jika Anda menggunakan boost.Test versi header tunggal atau pustaka dinamis, buka Tambahkan direktif sertakan. Jika Anda menggunakan versi pustaka statis, maka Anda harus melakukan beberapa konfigurasi tambahan:

    a. Untuk mengedit file proyek, pertama-tama batalkan pemuatan. Di Penjelajah Solusi, klik kanan node proyek dan pilih Batalkan Muatan Proyek. Kemudian, klik kanan node proyek dan pilih Edit <name.vcxproj>.

    b. Tambahkan dua baris ke grup properti Global seperti yang ditunjukkan di sini:

    <PropertyGroup Label="Globals">
    ....
        <VcpkgTriplet>x86-windows-static</VcpkgTriplet>
        <VcpkgEnabled>true</VcpkgEnabled>
    </PropertyGroup>
    

    c. Simpan dan tutup file *.vcxproj, lalu muat ulang proyek.

    d. Untuk membuka Halaman Properti, klik kanan pada node proyek dan pilih Properti.

    e. Perluas Pembuatan Kode> C/C++, lalu pilih Pustaka Runtime. Pilih /MTd untuk pustaka runtime statis debug atau /MT untuk merilis pustaka runtime statis.

    f. PerluasSistem>Linker. Verifikasi SubSistem diatur ke Konsol.

    g. Pilih Oke untuk menutup halaman properti.

Menambahkan arahan sertakan

  1. Dalam file .cpp pengujian Anda, tambahkan arahan #include yang diperlukan untuk membuat jenis dan fungsi program Anda terlihat oleh kode pengujian. Jika Anda menggunakan proyek pengujian terpisah, biasanya, program berada pada tingkat sibling dalam hierarki folder. Jika Anda mengetik #include "../", jendela IntelliSense akan muncul dan Anda dapat memilih jalur lengkap ke file header.

    Menambahkan arahan #include

    Anda dapat menggunakan pustaka mandiri dengan:

    #include <boost/test/unit_test.hpp>
    

    Atau, gunakan versi header tunggal dengan:

    #include <boost/test/included/unit_test.hpp>
    

    Kemudian, tentukan BOOST_TEST_MODULE.

Contoh berikut cukup agar pengujian dapat ditemukan di Test Explorer:

#define BOOST_TEST_MODULE MyTest
#include <boost/test/included/unit_test.hpp> //single-header
#include "../MyProgram/MyClass.h" // project being tested
#include <string>

BOOST_AUTO_TEST_CASE(my_boost_test)
{
    std::string expected_value = "Bill";

    // assume MyClass is defined in MyClass.h
    // and get_value() has public accessibility
    MyClass mc;
    BOOST_CHECK(expected_value == mc.get_value());
}

Menulis dan menjalankan pengujian

Anda sekarang siap untuk menulis dan menjalankan pengujian Boost. Lihat Dokumentasi pustaka uji Boost untuk informasi tentang makro pengujian. Untuk informasi tentang menemukan, menjalankan, dan mengelompokkan pengujian dengan menggunakan Test Explorer, lihat Menjalankan pengujian unit dengan Test Explorer.