Visual Studio'da Test Gezgini ile Python için birim testleri yazma
Birim testleri, bir uygulamadaki diğer kod birimlerini( genellikle yalıtılmış işlevler, sınıflar vb.) test eden kod parçalarıdır. Bir uygulama tüm birim testlerini geçtiğinde, en azından düşük düzeyli program işlevinin doğru olduğundan emin olabilirsiniz.
Python, program tasarlarken senaryoları doğrulamak için birim testlerini kapsamlı bir şekilde kullanır. Visual Studio'daki Python desteği, testleri ayrı ayrı çalıştırmaya gerek kalmadan geliştirme süreciniz bağlamında birim testlerini bulmayı, yürütmeyi ve hata ayıklamayı içerir.
Bu makalede, Python ile Visual Studio'daki birim testi özelliklerinin kısa bir ana hattı sağlanır. Genel olarak birim testi hakkında daha fazla bilgi için bkz . Kodunuzu birim testi.
Önkoşullar
Windows üzerinde Visual Studio, Python iş yükleri desteğiyle birlikte yüklenir. Daha fazla bilgi için bkz . Visual Studio'da Python desteğini yükleme.
Kod içeren bir Python projesi veya Python kodu içeren bir klasör.
Mac için Visual Studio desteklenmez. Daha fazla bilgi için bkz. Mac için Visual Studio neler oluyor? Windows, Mac ve Linux üzerinde Visual Studio Code, kullanılabilir uzantılar aracılığıyla Python ile iyi çalışır.
Python projesi için test çerçevesi seçme
Visual Studio, Python, unittest ve pytest için iki test çerçevesini destekler (Visual Studio 2019 sürüm 16.3 ve sonraki sürümlerde kullanılabilir). Varsayılan olarak, python projesi oluşturduğunuzda hiçbir çerçeve seçilmez.
Python projeniz için test çerçevesini seçmek için şu adımları izleyin:
Çözüm Gezgini'de proje adına sağ tıklayın ve Özellikler'i seçin.
Proje Özellikleri bölmesinde Test sekmesini seçin ve Test çerçevesi türünüzü seçin:
Unittest çerçevesi için Visual Studio, test bulma için projenin Kök dizinini atar. Varsayılan değer olur
.
, ancak proje ayarlarını yapılandırırken farklı bir konum belirtebilirsiniz. Ayrıca, test dosya adı Desenitest*.py, test_*.py
için gibi bir veya daha fazla dize belirtebilirsiniz.pytest çerçevesi için test konumu ve dosya adı desenleri gibi test seçenekleri standart pytest .ini yapılandırma dosyası kullanılarak belirtilir. Varsayılan olarak, konum için çalışma alanı/proje klasörü kullanılır. Varsayılan dosya adı düzeni ve
*_test.py
içerirtest_*py
. Daha fazla bilgi için pytest başvuru belgelerine bakın.
Not
Dosya adı desenini tanımlarken, alt çizgi () gibi özel karakterlerin joker karakterle (
_
*
) eşleşmediğini unutmayın. Dosya adında özel karakterler kullanmak istiyorsanız, bu karakterleri desen tanımında (gibi)test_*.py
belirtin.Çerçeve seçiminizi ve ayarlarınızı kaydetmek için Ctrl+S klavye kısayolunu kullanabilirsiniz.
Çerçeveyi yapılandırdıktan sonra Visual Studio test bulma işlemini başlatır ve Test Gezgini'ni açar.
Proje olmadan Python için test yapılandırma
Visual Studio, Python kodu içeren bir klasör açarak proje olmadan mevcut Python kodunu çalıştırmanıza ve test etmenizi sağlar. Bu senaryoda, testi yapılandırmak için python Ayarlar.json dosyası kullanmanız gerekir.
Yerel Klasör Aç seçeneğini kullanarak mevcut Python kodunuzu açın:
Bir Python klasörünü açtığınızda Visual Studio, programla ilgili ayarları yönetmek için birkaç gizli klasör oluşturur. Bu klasörleri (ve .git klasörü gibi diğer gizli dosya ve klasörleri) Çözüm Gezgini görmek için Tüm Dosyaları Göster seçeneğini belirleyin:
Çözüm Gezgini yerel Ayarlar klasörünü genişletin ve Python Ayarlar.json dosyasına çift tıklayarak dosyayı düzenleyicide açın.
Not
Yapılandırmaların çoğu iki ayar dosyası gösterir: Python Ayarlar.json ve Project Ayarlar.json. Bu alıştırma için Python Ayarlar.json dosyasını değiştirmeniz gerekir.
Python Ayarlar.json dosyasını Yerel Ayarlar klasöründe görmüyorsanız el ile oluşturabilirsiniz:
Yerel Ayarlar klasörüne sağ tıklayın ve Yeni Dosya Ekle'yi>seçin.
Dosyaya Python Ayarlar.json adını verin ve enter tuşuna basarak değişikliklerinizi kaydedin.
Visual Studio yeni dosyayı düzenleyicide otomatik olarak açar.
Python Ayarlar.json dosyasına aşağıdaki kodu ekleyerek öğesini
TestFramework
tanımlayın. İstediğiniz test çerçevesine bağlı olarak çerçeve değerini pytest veya unittest olarak ayarlayın:{ "TestFramework": "unittest", "UnitTestRootDirectory": "testing", "UnitTestPattern": "test_*.py" }
Unittest çerçevesi için Python Ayarlar.json dosyasında ve
UnitTestPattern
ayarları içinUnitTestRootDirectory
belirli değerler tanımlamazsanız, Visual Studio bu alanları sırasıyla varsayılan vetest*.py
değerleriyle.
otomatik olarak ekler.pytest çerçevesi için yapılandırma seçenekleri her zaman Visual Studio ayarları yerine pytest .ini yapılandırma dosyasında belirtilir.
Python programınız testlerinizi içeren klasörden ayrı bir src klasörü içeriyorsa, Python Ayarlar.json dosyasındaki ayar ile src klasörünün
SearchPaths
yolunu belirtin:"SearchPaths": [".\\src"]
Değişikliklerinizi Python Ayarlar.json dosyasına kaydedin.
Çerçeveyi yapılandırdıktan sonra Visual Studio, belirtilen çerçeve için test bulma işlemini başlatır. Test Gezgini'nde teste erişebilirsiniz.
Test ekleme ve bulma
Varsayılan olarak, Visual Studio unittest ve pytest testlerini adları ile test
başlayan yöntemler olarak tanımlar.
Visual Studio'nın test bulmayı nasıl başlattığını görmek için şu adımları izleyin:
Visual Studio'da bir Python projesi açın.
Python projesi için test çerçevesi seçme bölümünde açıklandığı gibi projenin test çerçevesi Özelliklerini ayarlayın.
Çözüm Gezgini'de projeye sağ tıklayın ve Yeni Öğe Ekle'yi>seçin.
Yeni Öğe Ekle iletişim kutusunda Python Birim Testi dosya türünü seçin.
Proje Özellikleri için belirttiğiniz Desen tanımını karşılayan bir dosya adı girin.
Ekle'yi seçin.
Visual Studio, test dosyasını varsayılan kodla oluşturur:
import unittest class Test_test1(unittest.TestCase): def test_A(self): self.fail("Not implemented") if __name__ == '__main__': unittest.main()
Bu kod standart
unittest
modülü içeri aktarır ve yöntemindenunittest.TestCase
bir test sınıfı türetir. Betiği doğrudan çalıştırdığınızda, bu kod işlevi de çağırırunittest.main()
.
Yeni test dosyaları eklediğinizde, Visual Studio bunları Test Gezgini'nde kullanılabilir hale getirir.
Test Gezgini ile testleri görüntüleme
Test çerçevenizi ve test dosyalarınızı yapılandırdıktan sonra Visual Studio testleri arar ve Bunları Test Gezgini'nde görüntüler.
Test Gezgini ile çalışmanın bazı yolları şunlardır:
Test Gezgini'ni seçerek Test>Gezgini penceresini açın.
Test Gezgini penceresi açıkken, test bulmayı tetikleme için CTRL+R, A klavye kısayolunu kullanın.
Karşılık gelen kaynak dosyayı düzenleyicide açmak için Test Gezgini'nde bir teste çift tıklayın:
Araç çubuğundaki Gruplandır seçeneğini kullanarak testlerinizin görünümünü düzenleyin:
Arama alanına metin girerek testleri ada göre filtreleyin:
Testleri çalıştırın ve sonraki bölümde açıklandığı gibi test çalıştırmasının durumunu görüntüleyin.
Modül ve yazma testleri hakkında unittest
daha fazla bilgi için Python belgelerine bakın.
Test Gezgini ile testleri çalıştırma
Test Gezgini'nde testleri çeşitli yollarla çalıştırabilirsiniz:
- Filtre ayarlarınıza göre geçerli görünümde gösterilen tüm testleri yürütmek için Tümünü Çalıştır'ı (görünümdeki testler) seçin.
- Testleri grup olarak çalıştırmak, başarılı olmak veya çalıştırmamak için Çalıştır menüsündeki komutları kullanın.
- Bir veya daha fazla test seçin ve ardından sağ tıklayıp Seçili Testleri Çalıştır seçeneğini belirleyin.
Visual Studio, testlerinizi arka planda çalıştırır. Test Gezgini tamamlandıktan sonra her testin durumunu güncelleştirir:
Testlerin geçirilmesi yeşil bir onay işareti ve test çalıştırmasını tamamlama süresini gösterir:
Başarısız testler, test çalıştırmasından konsol çıkışını ve
unittest
çıkışını gösteren çıkış bağlantısına sahip kırmızı bir X gösterir:
Testleri Hata Ayıklayıcı ile denetleme
Birim testleri, diğer kodlar gibi hatalara tabi olan ve bazen hata ayıklayıcıda çalıştırılması gereken kod parçalarıdır. Visual Studio Hata Ayıklayıcısı'nda kesme noktaları ayarlayabilir, değişkenleri inceleyebilir ve kodda adım adım ilerleyebilirsiniz. Visual Studio, birim testleri için tanılama araçları da sağlar.
Visual Studio Hata Ayıklayıcısı ile testlerinizi denetleme hakkında şu noktaları gözden geçirin:
Varsayılan olarak, test hata ayıklaması Visual Studio 2019 sürüm 16.5 ve üzeri için hata ayıklama hata ayıklayıcısını kullanır. Visual Studio'nun önceki sürümlerinde ptvsd 4 hata ayıklayıcısını kullanır. Visual Studio'nun önceki bir sürümünü kullanıyorsanız ve ptvsd 3 hata ayıklayıcısını tercih ediyorsanız, Araçlar>Seçenekleri>Python>Hata Ayıklama'nın altındaki Eski Hata Ayıklayıcıyı Kullan seçeneğini belirleyin.
Hata ayıklamaya başlamak için kodunuzda bir başlangıç kesme noktası ayarlayın, ardından Test Gezgini'nde teste (veya seçime) sağ tıklayın ve Seçili Testlerde Hata Ayıkla'yı seçin. Visual Studio, uygulama kodunda olduğu gibi Python hata ayıklayıcısını başlatır.
İsterseniz, Seçili Testler için Kod Kapsamını Analiz Et'i kullanabilirsiniz. Daha fazla bilgi için bkz . Test edilen kodun miktarını belirlemek için kod kapsamını kullanma.