Visual Studio'da C++ için Boost.Test kullanma

Visual Studio 2017 ve sonraki sürümlerde Boost.Test test bağdaştırıcısı Visual Studio IDE ile tümleşiktir. C++ iş yükü ile Masaüstü geliştirmenin bir bileşenidir.

Boost.Test için Test Bağdaştırıcısı

C++ iş yükünün yüklü olduğu Masaüstü geliştirmesi yüklü değilse Visual Studio Yükleyicisi açın. C++ ile Masaüstü geliştirme iş yükünü ve ardından Değiştir düğmesini seçin.

Boost’u yükleyin

Boost.Test için Boost gerekir! Boost yüklü değilse Vcpkg paket yöneticisini kullanmanızı öneririz.

  1. Vcpkg' deki yönergeleri izleyin: vcpkg'yi yüklemek için Windows için bir C++ paket yöneticisi (henüz yoksa).

  2. Boost.Test dinamik veya statik kitaplığını yükleyin:

    • Boost.Test dinamik kitaplığını yüklemek için komutunu çalıştırın vcpkg install boost-test .

      -veya-

    • Boost.Test statik kitaplığını yüklemek için komutunu çalıştırın vcpkg install boost-test:x86-windows-static .

  3. Visual Studio'yu kitaplıkla yapılandırmak ve Boost üst bilgileri ve ikili dosyalarının yollarını eklemek için komutunu çalıştırın vcpkg integrate install .

Visual Studio'da çözümünüzün içinde testlerinizi yapılandırma seçeneğiniz vardır: Test kodunuzu test altındaki projeye ekleyebilir veya testleriniz için ayrı bir test projesi oluşturabilirsiniz. Her iki seçeneğin de avantajları ve dezavantajları vardır.

Projenizin içine test ekleme

Visual Studio 2017 sürüm 15.6 ve sonraki sürümlerinde, projenize testler için bir öğe şablonu ekleyebilirsiniz. Hem testler hem de kodunuz aynı projede yer alır. Test derlemesi oluşturmak için ayrı bir derleme yapılandırması oluşturmanız gerekir. Ayrıca, testleri hata ayıklama ve sürüm derlemelerinizin dışında tutmanız gerekir.

Visual Studio 2017 sürüm 15.5'te Boost.Test için önceden yapılandırılmış test projesi veya öğe şablonu yoktur. Ayrı bir test projesi oluşturmak ve yapılandırmak için yönergeleri kullanın.

Boost.Test öğesi oluşturma

  1. Testleriniz için bir .cpp dosyası oluşturmak için, Çözüm Gezgini'da proje düğümüne sağ tıklayın ve Yeni Öğe Ekle'yi >seçin.

  2. Yeni Öğe Ekle iletişim kutusunda Yüklü>Visual C++>Test'i genişletin. Projenize Test.cpp eklemek için Boost.Test'i ve ardından Ekle'yi seçin.

    Boost.Test Öğesi Şablonu

Yeni Test.cpp dosyası örnek bir test yöntemi içerir. Bu dosya, kendi üst bilgi dosyalarınızı ekleyebileceğiniz ve uygulamanız için test yazabileceğiniz yerdir.

Test dosyası, test yapılandırmaları için yeni main bir yordam tanımlamak üzere makroları da kullanır. Projenizi şimdi derlerseniz , "_main zaten main.obj tanımlanmış" gibi bir LNK2005 hatası görürsünüz.

Derleme yapılandırmalarını oluşturma ve güncelleştirme

  1. Test yapılandırması oluşturmak için menü çubuğunda Yapılandırma Yöneticisi Oluştur'u>seçin. Configuration Manager iletişim kutusunda, Etkin çözüm yapılandırması altındaki açılan listeyi açın ve Yeni'yi seçin. Yeni Çözüm Yapılandırması iletişim kutusunda "UnitTests Hatalarını Ayıkla" gibi bir ad girin. Ayarları kopyala'nın altından Hata Ayıkla'yı ve ardından Tamam'ı seçin.

  2. Test kodunu Hata Ayıklama ve Yayın yapılandırmalarınızın dışında tutun: Çözüm Gezgini Test.cpp sağ tıklayın ve Özellikler'i seçin. Özellik Sayfaları iletişim kutusunda, Yapılandırma açılan listesinde Tüm Yapılandırmalar'ı seçin. Yapılandırma Özellikleri Genel'i> seçin ve Derlemeden Dışlanan özelliği için açılan listeyi açın. Değişikliklerinizi kaydetmek için Evet'i ve ardından Uygula'yı seçin.

  3. Test kodunu Hata Ayıklama UnitTests yapılandırmanıza eklemek için Özellik Sayfaları iletişim kutusunda Yapılandırma açılan menüsünden UnitTests Hatalarını Ayıkla'yı seçin. Derlemeden Dışlanan özelliğinde Hayır'ı seçin ve ardından değişikliklerinizi kaydetmek için Tamam'ı seçin.

  4. Ana kodu Debug UnitTests yapılandırmanızın dışında tutun. Çözüm Gezgini işlevinizi main içeren dosyaya sağ tıklayın ve Özellikler'i seçin. Özellik Sayfaları iletişim kutusunda Yapılandırma açılan listesinde UnitTests Hatalarını Ayıkla'yı seçin. Yapılandırma Özellikleri Genel'i> seçin ve Derlemeden Dışlanan özelliği için açılan listeyi açın. Değişikliklerinizi kaydetmek için Evet'i ve ardından Tamam'ı seçin.

  5. Çözüm Yapılandırması'nı UnitTests hatalarını ayıklamak için ayarlayın, ardından test gezgininin yöntemini bulması için projenizi oluşturun.

Oluşturduğunuz yapılandırma adı "Hata Ayıkla" veya "Yayın" sözcükleriyle başladığı sürece ilgili Boost.Test kitaplıkları otomatik olarak alınır.

Öğe şablonu Boost.Test'in tek üst bilgili değişkenini kullanır, ancak tek başına kitaplık değişkenini kullanmak için #include yolunu değiştirebilirsiniz. Daha fazla bilgi için bkz . Ekleme yönergeleri ekleme.

Ayrı bir test projesi oluşturma

Çoğu durumda, testleriniz için ayrı bir proje kullanmak daha kolaydır. Projeniz için özel bir test yapılandırması oluşturmanız gerekmez. Veya test dosyalarını Hata Ayıklama ve Yayın derlemelerinin dışında tutun.

Ayrı bir test projesi oluşturmak için

  1. Çözüm Gezgini çözüm düğümüne sağ tıklayın ve Yeni Proje Ekle'yi>seçin.

  2. Yeni proje ekle iletişim kutusunda, filtre açılan listelerinde C++, Windows ve Konsol'u seçin. Konsol Uygulaması şablonunu ve ardından İleri'yi seçin.

  3. Projeye bir ad verin ve Oluştur'u seçin.

  4. main.cpp dosyasındaki işlevi silin.

  5. Boost.Test'in tek üst bilgili veya dinamik kitaplık sürümünü kullanıyorsanız Ekleme yönergeleri ekle'ye gidin. Statik kitaplık sürümünü kullanıyorsanız bazı ek yapılandırmalar yapmanız gerekir:

    a. Proje dosyasını düzenlemek için önce kaldırın. Çözüm Gezgini proje düğümüne sağ tıklayın ve Projeyi Kaldır'ı seçin. Ardından proje düğümüne sağ tıklayın ve Adı> düzenle.vcxproj'yi< seçin.

    b. Burada gösterildiği gibi Geneller özellik grubuna iki satır ekleyin:

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

    c. *.vcxproj dosyasını kaydedip kapatın ve projeyi yeniden yükleyin.

    d. Özellik Sayfaları'nı açmak için proje düğümüne sağ tıklayın ve Özellikler'i seçin.

    e. C/C++>Kod Oluşturma'yı genişletin ve Çalışma Zamanı Kitaplığı'nı seçin. Statik çalışma zamanı kitaplığında hata ayıklamak için /MTd veya serbest bırakma statik çalışma zamanı kitaplığı için /MT'yi seçin.

    f. Bağlayıcı>Sistemi'ne tıklayın. Alt Sistemin Konsol olarak ayarlandığını doğrulayın.

    r. Özellik sayfalarını kapatmak için Tamam'ı seçin.

Ekleme yönergeleri ekleme

  1. Test .cpp dosyanızda, programınızın türlerini ve işlevlerini test koduna görünür hale getirmek için gerekli #include yönergeleri ekleyin. Ayrı bir test projesi kullanıyorsanız, genellikle program klasör hiyerarşisinde eşdüzey düzeydedir. yazarsanız #include "../"bir IntelliSense penceresi görüntülenir ve üst bilgi dosyasının tam yolunu seçmenize olanak tanır.

    #include yönergeleri ekleme

    Tek başına kitaplığı aşağıdakilerle kullanabilirsiniz:

    #include <boost/test/unit_test.hpp>
    

    Veya tek üst bilgili sürümü şu şekilde kullanabilirsiniz:

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

    Ardından öğesini tanımlayın BOOST_TEST_MODULE.

Aşağıdaki örnek, testin Test Gezgini'nde bulunabilir olması için yeterlidir:

#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());
}

Testleri yazma ve çalıştırma

Artık Boost testleri yazmaya ve çalıştırmaya hazırsınız. Test makroları hakkında bilgi için Test kitaplığını artırma belgelerine bakın. Test Gezgini'ni kullanarak testlerinizi bulma, çalıştırma ve gruplandırma hakkında bilgi için bkz. Test Gezgini ile birim testleri çalıştırma.