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.
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:
- Kod Kapsamını Analiz Et'i çalıştırın.
- 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:
.*
- 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:
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.