Aracılığıyla paylaş


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. 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'nde 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 test_*py ve *_test.py içerir. Daha fazla bilgi için pytest başvuru belgelerine bakın.

    Uyarı

    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 birPythonSettings.json dosyası kullanmanız gerekir.

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

  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. Çözüm Gezgini'nde bu klasörleri (ve .git klasörü gibi diğer gizli dosya ve klasörleri) görmek için Tüm Dosyaları Göster seçeneğini belirleyin:

  3. Çözüm Gezgini'ndeYerel Ayarlar klasörünü genişletin ve PythonSettings.json dosyasına çift tıklayarak dosyayı düzenleyicide açın.

    Uyarı

    Yapılandırmaların çoğu iki ayar dosyası gösterir: PythonSettings.json ve ProjectSettings.json. Bu alıştırma için PythonSettings.json dosyasını değiştirmeniz gerekir.

    PythonSettings.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 veYeni Dosya Ekle'yi> seçin.

    2. Dosyayı PythonSettings.jsonadlandırın ve değişikliklerinizi kaydetmek için Enter'ı seçin.

    Visual Studio yeni dosyayı düzenleyicide otomatik olarak açar.

  4. PythonSettings.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, UnitTestRootDirectory dosyasında UnitTestPattern ve ayarları için belirli değerler tanımlamazsanız, Visual Studio bu alanları sırasıyla . ve test*.py varsayılan 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.

  5. Python programınız testlerinizi içeren klasörden ayrı bir src klasörü içeriyorsa, PythonSettings.json dosyasındaki ayar ile SearchPaths klasörünün yolunu belirtin:

      "SearchPaths": [".\\src"]
    
  6. Değişikliklerinizi PythonSettings.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'nde projeye sağ tıklayın veYeni Öğ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. Add (Ekle) seçeneğini belirleyin.

  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 unittest.main() işlevini de çağırır.

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.
  • Başarısız, başarılı veya çalıştırılmamış testleri grup halinde çalıştırmak 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:

  • Başarılı testler yeşil bir onay işareti ve testi tamamlama süresini gösterir.

  • Başarısız testler, test çalıştırmasından konsol çıkışını ve çıkışını gösteren unittest bağlantısına sahip kırmızı bir X gösterir:

Testleri Hata Ayıklayıcı ile Kontrol Et

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>>> 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 özelliğini kullanabilirsiniz. Daha fazla bilgi için bkz. ne kadar kodun test edilmiş olduğunu belirlemek için kod kapsamını kullanma.