İngilizce dilinde oku

Aracılığıyla paylaş


Kod kapsamı sorunlarını giderme

Şunlar için geçerlidir: Visual Studio

Visual Studio'daki kod kapsamı çözümleme aracı, yerel ve yönetilen derlemeler (.dll veya .exe dosyaları) için veri toplar. Ancak, bazı durumlarda Kod Kapsamı Sonuçları penceresinde "Boş sonuçlar oluşturuldu: ...." gibi bir hata görüntülenir. Bu makale, boş sonuçlarla karşılaşmanın çeşitli nedenlerini gidermenize ve çözmenize yardımcı olur.

Ne görmelisin?

Test menüsünde Kod Kapsamını Çözümle komutunu seçerseniz ve derleme ve testler başarıyla çalıştırılırsa Kod Kapsamı penceresinde sonuçların listesini görmeniz gerekir. Ayrıntıları görmek için öğeleri genişletmeniz gerekebilir.

Renklendirme ile kod kapsamı sonuçlarını gösteren ekran görüntüsü.

Daha fazla bilgi için bkz . Ne kadar kodun test edildiğini belirlemek için kod kapsamını kullanma.

Sonuçları ya da eski sonuçları görmek için olası nedenler

Visual Studio'nun doğru sürümünü kullanmıyorsunuz

Visual Studio Enterprise'a ihtiyacınız var.

Hiçbir sınama yürütülemedi

Analiz

Çıktı penceresini onaylayın. Çıkış göster açılan listesinde Testler'i seçin. Herhangi bir uyarı veya hatanın günlüğe kaydedilip kaydedilmediğine bakın.

Açıklama

Kod kapsamı analizleri testler çalışırken tamamlanır. Testler çalıştırıldığında sadece belleğe yüklenen derlemeleri içerir. Testlerden hiçbiri yürütülmezse, kod kapsamının bildirecek bir şeyi yoktur.

Çözünürlük

Test Gezgini'nde Tümünü Çalıştır'ı seçerek testlerin başarıyla çalıştığını doğrulayın. Kod Kapsamını Analiz Et'i kullanmadan önce tüm hataları düzeltin.

Önceki bir sonuda bakıyorsunuz

Testlerinizi değiştirip yeniden çalıştırdığınızda, eski çalıştırmadaki kod renklendirmesi de dahil olmak üzere önceki bir kod kapsamı sonucu hala görünebilir. Sorunu çözmek için şu adımları izleyin:

  1. Kod Kapsamını Analiz Et'i çalıştırın.
  2. Kod Kapsamı Sonuçları penceresinde en son sonuç kümesini seçtiğinizden emin olun.

.pdb (simge) dosyaları kullanılamaz

Analiz

Derleme hedef klasörünü açın (genellikle bin\debug) ve her derleme için .dll veya .exe dosyasıyla aynı dizinde bir .pdb dosyası olduğunu doğrulayın.

Açıklama

Kod kapsamı altyapısı, her derlemenin test çalıştırması sırasında erişilebilen ilişkili .pdb dosyasına sahip olmasını gerektirir. Belirli bir derleme için .pdb dosyası yoksa, derleme çözümlenmemiştir.

.pdb dosyası, .dll veya .exe dosyalarıyla aynı derlemeden oluşturulmalıdır.

Çözünürlük

Derleme ayarlarınızın .pdb dosyasını oluşturduğundan emin olun.

  • Proje oluşturulduğunda .pdb dosyaları güncelleştirilmezse proje özelliklerini açın, Oluştur sayfasını seçin, Gelişmiş'i seçin ve Hata Ayıklama Bilgileri'ni inceleyin.

  • Visual Studio 2022 ve sonraki sürümlerde, .NET Core veya .NET 5+ hedefleyen C# projeleri için proje özelliklerini açın, Oluştur sekmesini seçin, Genel'i seçin ve Hata ayıklama sembollerini inceleyin.

  • C++ projeleri için, oluşturulan .pdb dosyalarının tam hata ayıklama bilgilerine sahip olduğundan emin olun. Proje özelliklerini açın ve Bağlayıcı>Hata Ayıklama Hata Ayıklama Hata Ayıklama>Bilgileri Oluştur'un paylaşım ve yayımlama için iyileştirilmiş Hata Ayıklama Bilgileri Oluştur (/DEBUG:FULL) olarak ayarlandığını doğrulayın.

.pdb ve .dll veya .exe dosyaları farklı yerlerdeyse, .pdb dosyasını aynı dizine kopyalayın. Başka bir konumda .pdb dosyalarını aramak için kod kapsamı altyapısını yapılandırmak da mümkündür. Daha fazla bilgi için bkz . Kod kapsamı analizini özelleştirme.

İzlemeli veya iyileştirilmiş ikili kullanılır

Analiz

İkilinin Profil Destekli İyileştirme gibi herhangi bir gelişmiş iyileştirme yönteminden geçirilip geçirildiğini veya vsinstr.exe veya vsperfmon.exe gibi bir profil oluşturma aracı tarafından izlenip izlenmediğini belirleyin.

Açıklama

Bir derleme zaten başka bir profil aracıyla araç haline getirilmiş veya iyileştirilmişse, derleme kod kapsamı analizinden atlanmıştır. Kod kapsamı analizi bu tür derlemelerde gerçekleştirilemez.

Çözünürlük

İyileştirmeyi kapatın ve yeni bir yapım kullanın.

Kod yönetilmiyor (.NET) veya yerel (C++) kod

Analiz

Yönetilen kodda veya C++ kodunda bazı testler çalıştırılıp çalıştırılamadığını belirleyin.

Açıklama

Visual Studio'daki kod kapsama analizi sadece yönetilen ve yerel (C++) kodlar için kullanılabilir. Üçüncü taraf araçlarla çalışıyorsanız kodun bir kısmı veya tamamı farklı bir platformda yürütülebilir.

Çözünürlük

Hiçbiri kullanılamaz.

Proje adı 'DataCollector' içeriyor

Proje adında DataCollector kullanan projeler kod kapsamı tarafından tanımlanamaz.

NGen tarafından yüklenen derleme

Analiz

Derlemenin yerel görüntü önbelleğinden yüklenip yüklenmediğini belirleyin.

Açıklama

Performans nedenleriyle yerel görüntü derlemeleri analiz edilir. Daha fazla bilgi için bkz . Ngen.exe (Yerel Görüntü Oluşturucu).

Çözünürlük

Derlemenin MSIL sürümünü kullanın. NGen ile işlemeyin.

Özel .runsettings dosyasında söz dizimi sorunları var

Analiz

Özel bir .runsettings dosyası kullanıyorsanız, söz dizimi hatası içeriyor olabilir. Kod kapsamı çalıştırılamaz ve test çalıştırmasının sonunda kod kapsamı penceresi açılmaz veya eski sonuçları gösterir.

Açıklama

Kod kapsamı seçeneklerini yapılandırmak için birim testlerinizi özel bir .runsettings dosyasıyla çalıştırabilirsiniz. Bu seçenek size dosyaları eklemeyi veya çıkarmayı sağlar. Daha fazla bilgi için bkz . Kod kapsamı analizini özelleştirme.

Çözünürlük

Olası iki hata türü şunlardır:

  • XML hatası

    Visual Studio XML düzenleyicisinde .runsettings dosyasını açın. Hata göstergelerine bakın.

  • Normal ifade hatası

    Dosyadaki her dize bir düzenli ifadedir. Her birini hatalar için gözden geçirin ve bu belirtilen için bakın:

    • Eşleşmeyen parantezler (...) veya sıralanmamış parantezler \(...\). Arama dizisinde parantezleri eşleştirmek istiyorsanız, atlatmak gerekir. Örneğin, bir işlevi eşleştirmek için şunu kullanın: .*MyFunction\(double\)
    • İfadenin başına yıldız veya artı koyun. Herhangi bir karakter dizesini eşleştirmek için nokta ve ardından yıldız işareti kullanın: .*

Yanlış istisnalarla özelleştirilmiş .runsettings dosyası

Analiz

Özel bir .runsettings dosyası kullanıyorsanız, derlemenizi içerdiğine emin olun.

Açıklama

Kod kapsamı seçeneklerini yapılandırmak için birim testlerinizi özel bir .runsettings dosyasıyla çalıştırabilirsiniz. Bu seçenek size dosyaları eklemeyi veya çıkarmayı sağlar. Daha fazla bilgi için bkz . Kod kapsamı analizini özelleştirme.

Çözünürlük

.runsettings dosyasındaki Include tüm düğümleri kaldırın ve ardından tüm düğümleri Exclude kaldırın. Bu problemi çözdüyse, bunları aşamalar halinde yerleştirin.

DataCollectors düğümünün Kod Kapsamını belirttiğinden emin olun. Bunu Kod kapsamı analizini özelleştirme'deki örnekle karşılaştırın.

Bazı kodlar her zaman kapsandığı gibi gösterilmez

İzlemeden önce yerel DLL'lerdeki kodun başlatılması

Analiz

Statik olarak bağlı yerel kodda dllmain başlatma işlevinin ve çağırdığı kodun bir bölümü, kod yürütülmüş olsa bile bazen kapsanmamış olarak gösterilir.

Açıklama

Kod kapsamı aracı uygulama başlamadan önce izlemenin derlemeye eklenmesiyle çalışır. Önceden yüklenen tüm derlemelerde, DllMain'deki başlatma kodu derleme yüklenir yüklenmez ve uygulama çalıştırılmadan önce yürütülür. Bu kod, genellikle statik olarak yüklenen derlemeler için geçerli olan kapsamına alınmamıştır.

Çözünürlük

Yok.

Başvurular