Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Test Gezgini penceresini kullanarak C++ birim testlerinizi yazabilir ve çalıştırabilirsiniz. Diğer dillerde olduğu gibi çalışır. Test Gezginikullanma hakkında daha fazla bilgi için bkz. Test Gezginiile birim testleri çalıştırma.
Not
Canlı Birim Testi, Kodlanmış UI Testleri ve IntelliTest gibi bazı özellikler C++ için desteklenmez.
Visual Studio ek indirme gerektirmeden şu C++ test çerçevelerini içerir:
- C++ için Microsoft Unit Testing Framework
- Google Test
- Boost.Test
- CTest
Yüklü çerçeveleri kullanabilir veya Visual Studio'da kullanmak istediğiniz çerçeve için kendi test bağdaştırıcınızı yazabilirsiniz. Test adaptörü, birim testlerini Test Gezgini penceresiyle entegre eder. Visual Studio Marketplaceüzerinde Microsoft olmayan birkaç bağdaştırıcı mevcuttur. Daha fazla bilgi için bkz. birim testi çerçevelerini yükleme.
Visual Studio 2017 ve üzeri (Professional ve Enterprise)
C++ birim testi projeleri CodeLensdestekler.
Visual Studio 2017 ve üzeri (tüm sürümler)
Google Test Bağdaştırıcısı, C++ iş yüküyle Masaüstü geliştirmesinin varsayılan bileşeni olarak dahil edilir. Çözüme ekleyebileceğiniz bir proje şablonu vardır. Çözüm Gezgini çözüm düğümüne sağ tıklayın ve kısayol menüsünden Yeni >seçerek proje şablonunu ekleyin. Ayrıca Araçları>Seçeneklerikullanarak yapılandırabileceğiniz seçenekler de vardır. Daha fazla bilgi için bkz. Nasıl yapılır: Visual Studio'da Google Test'i kullanma.
Boost.Test, C++ iş yüküyle Masaüstü geliştirmesinin varsayılan bileşeni olarak eklenir. Test Gezginiile tümleşiktir, ancak şu anda bir proje şablonu yoktur. El ile yapılandırmanız gerekir. Daha fazla bilgi için bkz. Nasıl yapılır: Visual Studio'da Boost.Test Kullanma.
CTest desteği, C++ iş yüküyle Masaüstü geliştirmesinin bir parçası olan C++ CMake araçları bileşenine dahildir. Daha fazla bilgi için bkz. Nasıl yapılır: Visual Studio'da CTest kullanma.
Visual Studio'nun önceki sürümleri
Google Test bağdaştırıcısını ve Boost.Test Adapter uzantılarını Visual Studio Market'te indirebilirsiniz. Bunları Boost.Test için Test bağdaştırıcısı ve Google Test içinTest bağdaştırıcısı adresinde bulabilirsiniz.
Bahşiş
Kod ile birim testleri oluşturmak için Copilot /tests slash komutunu da kullanabilirsiniz. Örneğin, Boost.Test testleri oluşturmak için /tests using Boost framework yazabilirsiniz. Daha fazla bilgi için bkz. Copilot Sohbet'te eğik çizgi komutlarını kullanma.
Temel test iş akışı
Aşağıdaki bölümlerde C++ birim testine başlamanıza yönelik temel adımlar gösterilmektedir. Temel yapılandırma hem Microsoft hem de Google Test çerçeveleri için benzerdir. Boost.Test, el ile bir test projesi oluşturmanızı gerektirir.
Visual Studio 2022'de test projesi oluşturma
Bir veya daha fazla test projesi içinde birim testleri tanımlayın ve çalıştırın. Test projesi yürütülebilir dosyanızdaki kodu çağıran ve davranışını bildiren ayrı bir uygulama oluşturur. Test etmek istediğiniz kodla aynı çözümde test projeleri oluşturun.
Mevcut çözüme yeni bir test projesi eklemek için:
- Çözüm Gezginiçözüm düğümüne sağ tıklayın.
- Bağlam menüsünde >Yeni ProjeEkle seçin.
- DilC++ olarak ayarlayın ve arama kutusuna test yazın. Aşağıdaki ekran görüntüsünde, C++ ile masaüstü geliştirme ve UWP Geliştirme iş yükü yüklendiğinde kullanılabilen test projeleri gösterilmektedir:
Visual Studio 2019'da test projesi oluşturma
Bir veya daha fazla test projesinde testleri tanımlayın ve çalıştırın. Projeleri test etmek istediğiniz kodla aynı çözümde oluşturun.
Mevcut çözüme yeni bir test projesi eklemek için:
- Çözüm Gezginiçözüm düğümüne sağ tıklayın.
- Bağlam menüsünde >Yeni ProjeEkle seçin.
- DilC++ olarak ayarlayın ve arama kutusuna test yazın. Aşağıdaki ekran görüntüsünde, C++ ile masaüstü geliştirme ve UWP Geliştirme iş yükü yüklendiğinde kullanılabilen test projeleri gösterilmektedir:
Çözümdeki diğer projelere referanslar oluşturmak
Test altındaki projedeki işlevlere erişimi etkinleştirmek için, test projenizdeki projeye bir başvuru ekleyin. Çözüm Gezgini'ndetest projenizi genişletin. Sağ tıklayın Başvurular ve ardından >Başvuru Ekleögesini seçin. Başvuru Ekle iletişim kutusunda, test etmek istediğiniz projeleri seçin.
Nesne veya kitaplık dosyalarına bağlanma
Test kodu test etmek istediğiniz işlevleri dışarı aktarmıyorsa çıkış .obj veya .lib dosyalarını test projesinin bağımlılıklarına ekleyin. Daha fazla bilgi için bkz. : Testleri nesne veya kitaplık dosyalarına bağlamak için.
main işlevine veya wmain, WinMainveya DllMaingibi başka bir standart giriş noktasına sahip nesne dosyalarını eklemeyin. Projenize yeni kaynak dosyaları eklediğinizde, test projesi bağımlılıklarını ilgili nesne dosyalarını içerecek şekilde güncelleştirin.
Üst bilgi dosyaları için #include yönergeleri ekleme
Birim testi .cpp dosyanızda, test etmek istediğiniz türleri ve işlevleri bildiren tüm üst bilgi dosyaları için bir #include yönergesi ekleyin.
#include "yazın ve IntelliSense, seçmenize yardımcı olmak için etkinleşir. Başka herhangi bir üst bilgi için tekrarlayın.
Bahşiş
Kaynak dosyadaki her include deyimine tam yolu yazmak zorunda kalmamak için, Project>Properties>C/C++>Genel>Ek Ekleme Dizinlerigerekli klasörleri ekleyin.
Test yöntemleri yazma
Not
Bu bölümde, C/C++ için Microsoft Unit Testing Framework söz dizimi gösterilmektedir. Daha fazla bilgi için bkz. Microsoft.VisualStudio.TestTools.CppUnitTestFramework API başvurusu.
Google Test belgeleri için bkz. Google Test primer. Boost.Test için bkz. Boost Test kitaplığı: Birim testi çerçevesi.
Test projenizdeki .cpp dosyasında sizin için tanımlanmış bir kalıp sınıf ve metot vardır. Test kodu yazma örneği gösterilir. İmzalar TEST_CLASS ve TEST_METHOD makrolarını kullanır ve bu da yöntemleri Test Gezgini penceresinden bulunabilir hale getirir.
TEST_CLASS ve TEST_METHOD, Microsoft Native Test Framework'nin bir parçasıdır. Test Gezgini, desteklenen diğer çerçevelerdeki test yöntemlerini benzer şekilde bulur.
Bir TEST_METHOD boş değer döndürür. Bir test sonucu oluşturmak için, Assert sınıfındaki statik yöntemleri kullanarak gerçek sonuçları beklenen sonuçlara karşı test edin. Aşağıdaki örnekte, MyClassstd::stringalan bir oluşturucuya sahip olduğunu varsayalım. Bu örnek, oluşturucunun sınıfı beklediğiniz gibi başlatdığını nasıl test ettiğinizi gösterir:
TEST_METHOD(TestClassInit)
{
std::string name = "Bill";
MyClass mc(name);
Assert::AreEqual(name, mc.GetName());
}
Önceki örnekte, Assert::AreEqual çağrısının sonucu testin başarılı olup olmadığını belirler.
Assert sınıfı, beklenen sonuçları gerçek sonuçlarla karşılaştırmak için başka birçok yöntem içerir.
Test sahiplerini, önceliğini ve diğer bilgileri belirtmek için test yöntemlerine özellikleri ekleyebilirsiniz. Daha sonra testlerini Test Gezginisıralamak ve gruplandırmak için bu değerleri kullanabilirsiniz. Daha fazla bilgi için bkz. Test Gezgini ile birim testleri çalıştırma.
Testleri çalıştırma
Test menüsünde, Test Gezginiseçin. Aşağıdaki çizimde, testleri çalıştırmadan önce bir test projesi gösterilmektedir.
Not
Test Gezgini ile CTest tümleştirmesi henüz kullanılamıyor. CMake ana menüsünden CTest testleri çalıştırın.
Testlerinizin herhangi biri pencerede eksikse, Çözüm Gezgini düğümüne sağ tıklayıp Derleme veya Yeniden Derle'yi seçerek test projesini derleyin.
Test Gezgini'nde Run Allöğesini veya çalıştırmak istediğiniz belirli testleri seçin. Bir teste sağ tıklayarak, kesme noktaları etkin hale getirerek hata ayıklama modunda çalıştırma da dahil olmak üzere diğer seçenekleri görebilirsiniz. Tüm testler çalıştırıldıktan sonra, pencerede geçirilen testler ve başarısız olanlar gösterilir.
Başarısız testler için, ileti nedenini tanılamaya yardımcı olan ayrıntıları görüntüler. Başarısız teste sağ tıklayın ve açılır menüyü açın. Hatanın oluştuğu işlevde adım adım ilerleyebilmek için hata ayıklama seçin.
Test Gezginikullanma hakkında daha fazla bilgi için bkz. Test Gezginiile birim testleri çalıştırma.
Birim testi hakkında daha fazla bilgi için bkz. Birim testi temel bilgileri.
CodeLens kullanma
Visual Studio 2017 ve üzeri (Professional ve Enterprise sürümleri)
CodeLens , kod düzenleyicisinden çıkmadan birim testinin durumunu hızla görmenize olanak tanır.
C++ birim testi projesi için CodeLens'i aşağıdaki yollardan herhangi biriyle başlatın:
- Test projenizi veya çözümünüzü düzenleyin ve oluşturun.
- Projenizi veya çözümünüzü yeniden oluşturun.
- testleri Test Gezgini penceresinden çalıştırın.
CodeLens'i başlatdıktan sonra, her birim testinin üzerinde test durumu simgelerini görebilirsiniz.
Daha fazla bilgi için simgeyi seçin veya birim testini çalıştırmak veya hatalarını ayıklamak için: