Share via


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ç veya eski sonuç görmemenin olası nedenleri

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

Visual Studio Enterprise ihtiyacın var.

Hiçbir test yürütüldü

Analysis

Çıkış pencerenizi denetleyin. Çıkış göster açılan listesinde Testler'i seçin. Günlüğe kaydedilen herhangi bir uyarı veya hata olup olmadığına bakın.

Açıklama

Kod kapsamı analizi, testler çalışırken gerçekleştirilir. Yalnızca testler çalıştırıldığında belleğe yüklenen derlemeleri içerir. Testlerden hiçbiri yürütülmezse, kod kapsamının bildirecek hiçbir şeyi yoktur.

Çözüm

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 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ılamıyor

Analysis

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üm

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, Derleme sayfasını seçin, Gelişmiş'i seçin ve Hata Ayıklama Bilgilerini 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 Bilgisi>Oluşturma'nınpaylaşı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.

bir izlemeli veya iyileştirilmiş ikili kullanılır

Analysis

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

Açıklama

Bir derleme başka bir profil oluşturma aracı tarafından önceden izlendiyse veya iyileştirildiyse, derleme kod kapsamı analizinden atlanır. Kod kapsamı analizi bu tür derlemelerde gerçekleştirilemez.

Çözüm

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

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

Analysis

Yönetilen kodda mı yoksa C++ kodunda mı bazı testler çalıştırdığınızı belirleyin.

Açıklama

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

Çözüm

Kullanılabilir yok.

Proje adı 'DataCollector' içeriyor

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

Derleme NGen tarafından yüklendi

Analysis

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

Açıklama

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

Çözüm

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

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

Analysis

Ö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. Seçenekler, dosyaları eklemenize veya hariç tutmanıza olanak sağlar. Daha fazla bilgi için bkz. Kod kapsamı analizini özelleştirme.

Çözüm

İki olası hata türü vardır:

  • XML hatası

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

  • Normal ifade hatası

    Dosyadaki her dize normal bir ifadedir. Hataların her birini gözden geçirin ve özellikle şunları arayın:

    • Eşleşmeyen parantezler (...) veya ayarsız parantezler \(...\). Arama dizesindeki bir parantezi eşleştirmek istiyorsanız, bundan kaçmalısınız. Örneğin, bir işlevi eşleştirmek için şunu kullanın: .*MyFunction\(double\)
    • İfadenin başında yıldız işareti veya artı. Herhangi bir karakter dizesiyle eşleştirmek için nokta ve ardından yıldız işareti kullanın: .*

Yanlış dışlamalarla özel .runsettings dosyası

Analysis

Ö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. Seçenekler, dosyaları eklemenize veya hariç tutmanıza olanak sağlar. Daha fazla bilgi için bkz. Kod kapsamı analizini özelleştirme.

Çözüm

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

DataCollectors düğümü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 ele alınmamış olarak gösterilir

Yerel DLL'lerde başlatma kodu izlemeden önce yürütülür

Analysis

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

Açıklama

Kod kapsamı aracı, uygulama çalışmaya başlamadan hemen önce bir derlemeye izleme ekleyerek ç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ış gibi görünür.

Çözüm

Hiçbiri.

Başvurular