Aracılığıyla paylaş


Test Ayıklaması Sorun Giderme

Test çalışmada başarısız olursa, test ortamını denetleyerek başarısızlığı araştırabilirsiniz; bu testin kurulumunu ve etkin test ayarlarındaki ayarları içerir.Bazı durumlarda, örneğin dağıtımla ilişkili olanlarda, hatalar test türünden bağımsızdır.Diğer durumlarda, neyin nasıl araştırılacağını test türü belirler.Test türüne göre araştırma ipuçları için bkz. Test Türüne Göre Ayrıntılar.

Testler ile ilişkili hatalar aşağıdaki iki düzeyden biri üzerinden size bildirilir:

  • Test düzeyi hataları.Test sonuçları penceresini kullanarak, test sonucunu çift tıklatabilir veya test sonucunu sağ tıklatıp ardından Test Sonuçlarının Ayrıntılarını Görüntüle öğesini seçebilirsiniz.Bu,testin türüne bağlı olarak örneğin birim testleri için yığın izleme bilgileri gibi hata mesajlarını veya diğer ayrıntıları gösteren test [Ayrıntılar] sayfasını görüntüler.Test düzeyi hatası, testin zaman aşımı sınırına ulaşıldığında meydana gelen bir test zaman aşımı hatası örneğidir.

  • Çalıştırma-düzeyi hataları.Test ayarları hatalarını içeren, çalışma düzeyi hataları, Test Sonuçları penceresi üzerinden rapor edilir.Bir çalışma düzeyi hatası oluştuğunda, Test Sonuçları penceresi durum çubuğunda bir bağlantı belirir.Bu bağlantıyı seçme hata hakkında daha fazla ayrıntı sınama çalıştırma [Ayrıntılar] sayfasında görüntüler.Sınama çalıştırma [Ayrıntılar] sayfasını seçerek de görüntüleyebilirsiniz Çalıştırma ayrıntıları Test sonuçları penceresi araç çubuğunda.Çalışma düzeyi hatası, çalışmanın zaman aşımı sınırına ulaşıldığında meydana gelen bir çalışma zaman aşımı hatası örneğidir.

Tüm sorunlar bir testin gerçekleşememesine yol açmaz.Kod kapsama verilerini edinmeyi seçmenizin ardından, projenizin belirli yapı ayarları varsa testleri yürütmek bir uyarı üretir.Daha fazla bilgi için bkz. Kod Kapsama Verisini Elde Ederken AnyCPU Build Ayarını Kullanma.

Dağıtım Hataları

Otomatik olarak yürütülen herhangi bir testte yani kılavuz dışındaki herhangi bir test türünde bazı hatalarla karşılaşılabilir.Bu hatalar sıklıkla testlerin dağıtımı ile ilişkilidir.Bir test dağıtıldığında, bunu içeren dosya ya yerel bilgisayardaki bir konumdaki ya da uzaktaki bir bilgisayardaki, başka bir klasöre kopyalanır.

Ünite testleri için, örneğin test projesinden oluşturulan .dll dosyası, dağıtılması gereken dosyadır.Bu ikili dosya dağıtılamazsa, bunları çalıştırdığınızda, içerdikleri herhangi bir ünite testi Test Sonuçları penceresinde hemen Başarısız olarak işaretlenir.

Bu hatayı düzeltmek için dosyaların yerel bilgisayarınızda olduğundan ve ikili test dosyalarınızı en son tekrar yapılandırdığınızda herhangi bir yapı hatası olmadığından emin olun.

Sadece ikili dosyalar dağıtılamaz.Bir testin bir veri dosyası gibi belirli bir dosyayı gerektirdiğini ve bu nedenle test ile dağıtılması gerektiğini belirtebilirsiniz.Dağıtım zamanında, bu dosya taşınmış veya silinmiş olduğundan dolayı bulunamıyorsa, test düzgün çalışamaz ve bir hata meydana gelir.Ayrıca bu hata ile ilgili olarak genel testler hakkında bilgi için bkz. Test Türüne Göre Ayrıntılar.

Bu hatayı araştırmak için öncelikle test ayarlarını düzenlemek için kullanılan iletişim kutusunun Dağıtım sayfasında belirtilen dosya ve klasörlere bakın.Daha fazla bilgi için bkz. Visual Studio Testleri için Test Ayarlarını Belirtme.Sonra disk üzerindeki bu dosyaların ve klasörlerin mevcut olduklarından ve adlarının aynı olduğundan emin olmak kontrol edin.

Çözümünüzün birden fazla test ayarlama dosyası olabilir.Bu durumda, test hatası meydana geldiğinde aktif olan test ayarlarını incelediğinizden emin olun.Hangi test ayarlarının etkin olduğunu belirlemek için o test çalışması için Test Çalışması Detayları sayfasını inceleyin.

Etkin test ayarı dosyaları hakkında daha fazla bilgi için bkz. Nasıl yapılır: Microsoft Visual Studio etkin sınama ayarları seçin.

Uzak Test Sonuçlarını Raporlama Hataları

Testleri uzaktan çalıştırdığınızda, test sonuçları görüntülenemeyebilir.Bu hata muhtemelen test çalışmasının uzak doğası ile ilgilidir.

Yerel test çalıştırmalarının test sonuçları gibi, uzak çalıştırmaların sonuçları da size yerel olarak raporlanır.Belirli uzak sınama sonuçlarını raporlama özelliği, Visual Studio Ultimate veya Visual Studio Premium oluşturulan sınama sonuçları test uzak bilgisayardan yerel bilgisayarınıza kopyalamak bağlıdır.

Uzak test sonuçları ile oluşan hatalar bulursanız, Visual Studio öğesini çalıştırdığınız bilgisayarla uzak bilgisayar arasındaki ağ bağlantısının kesilmiş olup olmadığını belirleyerek başlayın.

Daha fazla bilgi için bkz. Testleri Çalıştırmak veya Veri Toplamak için Test Makinelerini Ayarlama.

İşaretleme Hataları

Kod kapsama raporlamasını etkinleştirmek için test edilen ikili dosyalar seçilmeli ve daha sonra üzerlerinde testler çalıştırılmadan önce dağıtılmalıdır.

İkili dosyaları işaretleme hatası, kod kapsamını raporlama işleminin başarısız olmasına neden olur.Test çalıştırması tamamlandıktan sonra, Test Çalıştırması Ayrıntıları, kod kapsamının raporlanamadığını bildiren bir hata iletisi görüntüler ve sebebini de belirtir.

İkili bir dosyayı yerinde işaretleme işleminin başarısız olmasının olası nedenleri, dosyanın salt okunur olarak işaretlenmesi veya başka bir işlem tarafından kullanılıyor olmasıdır.Salt okunur bir ikili dosyanın hatasını düzeltmek için öncelikle yazılabilir olduğundan emin olmak üzere ikili dosyanın özniteliklerini inceleyin.Hangi ikili dosyanın denetlenmesi gerektiğini bilmek için etkin test ayarlarının Kod Kapsamı sayfasını açın; burası dosyaları araçlandırma için belirlediğiniz yerdir.Daha fazla bilgi için bkz. Nasıl yapılır: Kod Kapsamı verileri elde etmek.

El ile test ile birlikte bir veya daha fazla birim testleri kullanırsanız, yerinde araçlamayı kullanırken kod kapsamı hatasının başka bir nedeni ortaya çıkabilir.El ile test sırasında, test edici test edilen üretim kodunu çalıştırır.Testçi kodu başlatmak veya hata ayıklamak için F5'e veya CTRL+F5'e basarsa, projenin yürütülebilir dosyası yeniden kurulur, bu da araçları kaldırır.

Ayrıca, başka hiçbir işlemin ikili dosyayı kullanmadığından emin olun.Örneğin, dosyanın bir başka Visual Studio örneği üzerinde açık olmadığından emin olun.

Kesin adlandırılmış birleştirmeler öğesini işaretlerken derlemeyi yeniden imzalamakla ilgili başka hatalarla karşılaşabilirsiniz.Daha fazla bilgi için bkz. Derlemeleri İşaretleme ve Yeniden İmzalama.

Kod Kapsama Verisi Elde Ederken AnyCPU Yapı Ayarını Kullanmak

Yalnızca 32 bit derlemelerde kod sınadığınızda kod kapsamı verileri edinebilirsiniz.Bu durum garantilemek için belirli bir derleme özelliği ayarlayın.

[!NOT]

Bu uyarı, C++ projeleri için geçerli değildir, çünkü AnyCPU C++ projeleri için bir platform seçimi değildir.

Projenizi AnyCPU değeriyle yapılandırıyorsanız, sonuç derlemesinde çalıştırılan testler kod kapsamı verisi verir ancak test çalışması aynı zamanda bir uyarı üretir.Test Çalışma Ayrıntıları Sayfasında uyarı metnini görebilirsiniz:

Uyarı VSP2013: Bu görüntüyü işaretlemek bir 32-bit işlem olarak çalışmasını gerektirir. CLR üstbilgi bayrakları bunu yansıtmak üzere güncelleştirilmiştir.

Bu uyarı, bu test çalışması sırasında kod kapsama verisi almak amacıyla derlemenin x86 özelliği uygulanmış biçimde yeniden derlendiği anlamına gelir.Bu uyarı önlemek için kod kapsama verisi için istediğiniz herhangi bir derlemeyi x86 ayarıyla derleyin.

[!NOT]

Uygulamanız 32 bit hem de 64 bit bilgisayarlarda çalışmak üzere oluşturulduysa, test tamamlandıktan sonra AnyCPU ayarı kullanarak derlemeyi unutmayın.

C++/CLI Test Derlemesini Kilitleyebilen Birim Testleri Çalıştırma

Test yürütme motorunun test projenizde bir derlemeyi açtığı ve kilitlediği bir durumla karşılaşabilirsiniz.Bu durumda, örneğin, değişiklikleri derlemeye kaydedemezsiniz.Bu sorun aşağıdaki durumlarda oluşabilir:

  • Örnek 1: TestProjectA adlı test projenizin dağıtımını devre dışı bırakmışsınız.TestProjectA C + +/ CLI'de derlenmiş.TestProjectA içindeki kod bir öznitelik sınıfı tanımlar ve bu öznitelik TestProjectA'da uygulanan test metotlarından en az birini süsler.Bu aşamada, TestProjectA içindeki birim testlerini çalıştırdığınızda, test yürütme motoru TestProjectA.DLL dosyasını açar ve onu kilitli durumda bırakabilir.

  • Örnek 2: TestProject1 adlı test projeniz, TestProject2 adlı ikinci bir test projesinden derlenen bir DLL içerir.TestProject2 C + +/ CLI'de derlenmiş.TestProject2 içindeki kod bir öznitelik sınıfı tanımlar ve bu öznitelik TestProject2'de uygulanan test metotlarından en az birini süsler.Bu durumda, TestProject1 içindeki birim testlerini çalıştırdığınızda, test gerçekleştirme altyapısı TestProject2.DLL dosyasını açar ve kilitli durumda bırakabilir.

Her iki durumda da, çözüm iki parçalı olabilir.Önce aşağıdaki adımları gerçekleştirin.

  1. Araçlar menüsünde Seçenekler'i seçin.

    Seçenekler iletişim kutusu açılır.

  2. Genişletme Test araçları ve Sınama yürütme.

  3. Başarım altında, Test çalışmaları arasında yürütme motorunu çalışır tut onay kutusunu boş bırakın.

Bu adımları tamamladıktan sonra, sorun devam ederse aşağıdakileri yapın:

Kodunuzu C++/CLI içerisinde derlenmiş olan test projesinin varsayılan AppDomain üzerine yüklenmesini gerektirmeyecek şekilde değiştirin.Bunu yapmanın bir yolu, C# öğesinde uygulanan ayrı bir derlemede kullandığınız özel özniteliklerin tanımlarını taşımaktır.

Test Türüne göre Ayrıntılar

Bu bölümde açıklandığı gibi belirli test türlerini çalıştırdığınızda belirli hatalar sık ya da öncelikli olarak meydana gelir.

  • Düzenli testler.Düzenli test ile karşılaşılan hatalar genellikle dosya dağıtımını içerir.Test motoru bir sıralı test çalıştırmadan önce diğer gereken dosyalara ek olarak içerilen tüm dosyalar için tüm test dosyalarını bulmalı ve dağıtmalıdır.Ayrı ayrı testlerin herhangi biri için bunu gerçekleştirmede başarısızlık hataya neden olur.

  • Genel testler.Dağıtım hataları genel testler çalıştırdığınızda da oluşabilir.Genel testler için dağıtılacak dosyaları iki yolla belirtebilirsiniz; test ayarlarının Dağıtım sayfasında ve Genel testin kendi yetkilendirme sayfasında.Tüm gerekli dosyaları listelemeyi ihmal ederseniz veya belirttiğiniz konumlarda dosya bulunamazsa, test başarısız olabilir.

    Dosyaları dağıtmaya ilişkin bu iki farklı yol, farklı düzeylerde hata görünmesine neden olur.Dağıtım hatası Genel test yazma sayfasında belirtilen bir dosya ile ilişkili ise, hata test düzeyinde belirir.Dağıtım hatası test ayarlarında belirtilen dosya ile ilişkili ise, hata çalışma düzeyinde belirir.

Ayrıca bkz.

Görevler

Nasıl yapılır: belirli bir süre sonra çalışmasını durdurmak için Kuvvet testleri

Kavramlar

Derlemeleri İşaretleme ve Yeniden İmzalama

Microsoft Test Yöneticisi'nde Test Sonuçlarını Gözden Geçirme