Share via


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

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:

  1. Çözüm Gezgini'de proje adına sağ tıklayın ve Özellikler'i seçin.

  2. 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.pyiç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_*.pybelirtin.

  3. Ç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.

  1. Yerel Klasör Aç seçeneğini kullanarak mevcut Python kodunuzu açın:

    Visual Studio 2022 başlatıldığında Yerel klasör aç seçeneğinin nasıl seçildiğini gösteren ekran görüntüsü.

    Visual Studio başlatıldığında Yerel klasör aç seçeneğinin nasıl seçildiğini gösteren ekran görüntüsü.

  2. 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:

    Visual Studio 2022'de Çözüm Gezgini gizli klasörleri ve dosyaları görüntülemeyi gösteren ekran görüntüsü.

    Visual Studio'da Çözüm Gezgini gizli klasörleri ve dosyaları görüntülemeyi gösteren ekran görüntüsü.

  3. Çö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:

    1. Yerel Ayarlar klasörüne sağ tıklayın ve Yeni Dosya Ekle'yi>seçin.

    2. 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.

  4. Python Ayarlar.json dosyasına aşağıdaki kodu ekleyerek öğesini TestFrameworktanı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çin UnitTestRootDirectory belirli değerler tanımlamazsanız, Visual Studio bu alanları sırasıyla varsayılan ve test*.pydeğ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.

  5. 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 SearchPathsyolunu belirtin:

      "SearchPaths": [".\\src"]
    
  6. 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 testbaş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:

  1. Visual Studio'da bir Python projesi açın.

  2. Python projesi için test çerçevesi seçme bölümünde açıklandığı gibi projenin test çerçevesi Özelliklerini ayarlayın.

  3. Çözüm Gezgini'de projeye sağ tıklayın ve Yeni Öğe Ekle'yi>seçin.

    1. Yeni Öğe Ekle iletişim kutusunda Python Birim Testi dosya türünü seçin.

    2. Proje Özellikleri için belirttiğiniz Desen tanımını karşılayan bir dosya adı girin.

    3. Ekle'yi seçin.

  4. 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önteminden unittest.TestCase bir test sınıfı türetir. Betiği doğrudan çalıştırdığınızda, bu kod işlevi de çağırır unittest.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:

    Visual Studio 2022'de Test Gezgini'nde test için varsayılan görünümü gösteren ekran görüntüsü.

    Test Gezgini'nde bir test için varsayılan görünümü gösteren ekran görüntüsü.

  • Araç çubuğundaki Gruplandır seçeneğini kullanarak testlerinizin görünümünü düzenleyin:

    Visual Studio 2022'de Gruplandır seçeneğiyle Test Gezgini'nde test görünümünü düzenlemeyi gösteren ekran görüntüsü.

    Test Gezgini'ndeki testlerin görünümünü Gruplandır seçeneğiyle düzenlemeyi gösteren ekran görüntüsü.

  • Arama alanına metin girerek testleri ada göre filtreleyin:

    Arama alanını kullanarak Test Gezgini'ndeki testlerin görünümünü filtrelemeyi gösteren ekran görüntüsü.

    Arama alanını kullanarak Test Gezgini'ndeki testlerin görünümünü filtrelemeyi gösteren ekran görüntüsü.

  • 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:

    Visual Studio 2022'de Test Gezgini'nde geçirilen testin durumunu gösteren ekran görüntüsü.

    Test Gezgini'nde geçirilen testin durumunu gösteren ekran görüntüsü.

  • 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:

    Visual Studio 2022'de Test Gezgini'nde başarısız olan testin durumunu ve neden ayrıntılarını gösteren ekran görüntüsü.

    Test Gezgini'nde başarısız olan testin durumunu gösteren ekran görüntüsü.

    Test Gezgini'nde başarısız olan testin nedenini gösteren ekran görüntüsü.

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.

    Visual Studio 2022 Hata Ayıklayıcısı ile birim testinde hata ayıklamayı gösteren ekran görüntüsü.

    Visual Studio Hata Ayıklayıcı ile birim testinde hata ayıklamayı gösteren ekran görüntüsü.

  • İ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.