Aracılığıyla paylaş


Kod Kapsamı Sorunlarını Giderme

Visual Studio'daki kod kapsamı analiz aracı yerel ve yönetilen (.ddl veya .exe dosyaları) için verileri toplar.Ancak bazı durumlarda Kod Kapsamı Sonuçlar penceresi "Boş üretilen sonuçlar: ..." benzeri bir hata gösterir. Bunun olmasının çeşitli sebepleri vardır.Bu konu bu sorunların giderilmesine yardımcı olmak amacıyla hazırlanmıştır.

Görmeniz gereken

Eğer Test menüsünden Kod Kapsamı Analizi komutunu seçmişseniz ve eğer yapım ve testler başarılıysa, Kod Kapsamı penceresinde sonuç listesini görmelisiniz.Ayrıntıları görmek için öğeleri genişletmeniz gerekebilir.

Kod kapsamı sonuçları ile renklendirme

Daha fazla bilgi için bkz. Kod kapsamı belirlemek ne kadar kod kullanılarak test edilmiştir.

Hiçbir sonuç görmemenin olası sebepleri

JJ159523.collapse_all(tr-tr,VS.110).gifHiçbir sınama yürütülemedi

  • Çözümleme
    Çıktı penceresini kontrol edin.Aşağı açılan listede Çıktıyı göster içerisinde, Testler'i seçin.Herhangi bir uyarı veya hatanın kayıtlanmadığına 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.Eğer testlerin hiçbiri çalıştırılmazsa kod kapsamı raporunda hiçbirşey olmaz.

  • Çözüm
    Test Gezgini'nden testlerin başarıyla sonuçlandığını doğrulamak için Çalışan Bütün 'ü seçin.Kod Kapsamı Analizini kullanmadan önce bütün hataları düzeltin.

JJ159523.collapse_all(tr-tr,VS.110).gif.pdb (simge) dosyaları kullanılamaz

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

  • Açıklama
    Kod kapsamı motorunun test sırasında her derleme için ilişkili .pdb dosyasının erişilebilir olmasına ihtiyacı vardır.Eğer belirli bir derleme için .pdb dosyası yoksa, o dosya analiz edilmez.

    .pdb dosyası .dll veya .exe dosyasıyla birlikte aynı derleme sırasında oluşturulmalıdır.

  • Çözüm
    Yapım ayarlarının .pdb dosyasını oluşturduğundan emin olun.Proje oluşturulduğunda .pdb dosyaları güncellenmemişse, proje özellikleri sayfasını açıp Yapım sayfasından Gelişmiş ve Hata ayıklama bilgisi 'ni denetleyin.

    Eğer .pdb ve .dll veya .exe dosyaları farklı yerlerdeyse, .pdb dosyasını aynı dizine kopyalayın.Kod kapsamı motorunu .pdb dosyalarını başka bir konumda aramak için yapılandırmak mümkündür.Daha fazla bilgi için bkz. Kod Kapsamı Çözümlemeyi Özelleştirme.

JJ159523.collapse_all(tr-tr,VS.110).gifAraçlı ya da optimize edilmiş ikili kullanma

  • Çözümleme
    İkilinin Profil Destekli İyileştirme gibi gelişmiş bir iyileştirmeden geçmiş olduğu veya csinstr.exe veya vsperfmon.exe gibi profil oluşturma aracı tarafından oluşturulduğunu belirleyin.

  • Açıklama
    Eğer bir derleme zaten başka bir profil oluşturma aracıyla araçlanmış veya iyileştirilmişse, derleme kod kapsamı analizinden atlanmıştır.

    Kod kapsamı analizi bu tür derlemelerde gerçekleştirilmez.

  • Çözüm
    İyileştirmeyi kapatın ve yeni bir yapım kullanın.

JJ159523.collapse_all(tr-tr,VS.110).gifKod yönetilen (.NET) veya yerel (C++) kodu değilse

  • Çözümleme
    Yönetilen veya C++ kodunda bazı testler çalıştığından emin olun.

  • Açıklama
    Visual Studio'daki kod kapsama analizi sadece yönetilen ve yerel (C++) kodları için kullanılabilir.Eğer üçüncü parti araçlar kullanıyorsanız, kodunuzun bazı veya tamamı farklı bir platformda çalışabilir.

  • Çözüm
    Hiçbiri kullanılamaz.

JJ159523.collapse_all(tr-tr,VS.110).gifNGen tarafından yüklenen derleme

  • Çözümleme
    Derlemenin yerel bir görüntü önbelleğinden yüklenmediğinden emin olun.

  • Açıklama
    Performansla ilgili nedenlerden dolayı, yerel görüntü derlemeleri analiz edilmez.Daha fazla bilgi için bkz. Ngen.exe (özgün Görüntü Oluşturucu).

  • Çözüm
    Derlemenin MSIL sürümünü kullanın.NGen ile işlemeyin.

JJ159523.collapse_all(tr-tr,VS.110).gifHatalı sözdizimi ile özelleştirilmiş .runsettings dosyası

  • Çözümleme
    Özelleştirilmiş bir .runsettings dosyası kullanıyorsanız, sözdizimi hatası içerebilir.

    Kod kapsamı içindeki sonuçlardır.Kod kapsamı penceresi test sonunda açılmaz ya da eski sonuçları gösterir.

  • Açıklama
    Birim testlerini kod kapsam seçeneklerini yapılandırmak için özelleştirilmiş .runsettings dosyasıyla çalıştırabilirsiniz.Bu seçenek size dosyaları eklemeyi veya çıkarmayı sağlar.Daha fazla bilgi için bkz. Kod Kapsamı Çözümlemeyi Özelleştirme.

  • Çözüm
    Olası iki hata türü şunlardır:

  • XML hatası

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

  • Düzenli ifade hatası

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

    • Eşleşmeyen parantezler (...) ya da atlatılamayan parantez \ (...\).Arama dizisinde parantezleri eşleştirmek istiyorsanız, atlatmak gerekir.Örneğin, işlevi eşleştirmek için bunu kullanın: .*MyFunction\(double\)

    • İfadenin başına yıldız veya artı koyun.Herhangi bir dizenin karakterlerini eşleştirmek için, noktadan sonra yıldız kullanın: .*

JJ159523.collapse_all(tr-tr,VS.110).gifYanlış istisnalarla özelleştirilmiş .runsettings dosyası

  • Çözümleme
    Eğer özelleştirilmiş bir .runsettings dosyası kullanıyorsanız, derlemenizi içerdiğinden emin olun.

  • Açıklama
    Birim testlerini kod kapsam seçeneklerini yapılandırmak için özelleştirilmiş .runsettings dosyasıyla çalıştırabilirsiniz.Bu seçenek size dosyaları eklemeyi veya çıkarmayı sağlar.Daha fazla bilgi için bkz. Kod Kapsamı Çözümlemeyi Özelleştirme.

  • Çözüm
    .runsettings dosyasından bütün Include düğümlerini silin ve sonra bütün Exclude düğümlerini silin..Eğer bu problemi çözdüyse, bunları aşamalar halinde yerleştirin.

    DataCollectors düğümünün Kod Kapsamını belirttiğinden emin olun.Kod Kapsamı Çözümlemeyi Özelleştirme 'deki örnek ile karşılaştırın.

Bazı kodlar herzaman gösterildiği gibi kapsanmaz

JJ159523.collapse_all(tr-tr,VS.110).gifAraçlandırılmadan önce yerel DLL'lerdeki kodun başlatılması

  • Çözümleme
    Statik olarak bağlı yerel kodda, başlatma işlevinin bir parçası olarak DllMain ve onu çağıran kod bazen çalıştırılsa bile kapsanmamış olarak gösterilir.

  • Açıklama
    Kod kapsamı aracı uygulama başlamadan önce araçlamanın derlemeye eklenmesiyle çalışır.Bu süreden önce yüklenen herhangi bir derleme, DllMain içerisindeki başlatma kodunu uygulama çalışmadan önce derleme yüklenir yüklenmez yükleyip çalıştırır.Kod kapsanmayacak gibi görünür.

    Genellikle, bu statik olarak yüklenen derlemeler için geçerlidir.

  • Çözüm
    Yok.

Ayrıca bkz.

Diğer Kaynaklar

Kod kapsamı belirlemek ne kadar kod kullanılarak test edilmiştir