Aracılığıyla paylaş


Microsoft.Testing.Platform sorunlarını giderme

Bu makalede için Microsoft.Testing.Platformsorun giderme yönergeleri yer alır.

Çıkış kodları

Microsoft.Testing.Platform , test hatası veya uygulama hatalarını iletmek için bilinen çıkış kodlarını kullanır. Çıkış kodları 0 ile başlar ve negatif olmayan değerlerdir.

Çıkış kodu Ayrıntılar
0 Çıkış 0 kodu başarılı olduğunu gösterir. Çalıştırılacak şekilde seçilen tüm testler tamamlanmak üzere çalıştırıldı ve hiçbir hata yoktu.
1 Bilinmeyen hataları gösteren çıkış 1 kodu, her şeyi kapsayan bir işlev görür. Ek hata bilgilerini ve ayrıntılarını bulmak için çıktıya bakın.
2 çıkış kodu 2 , en az bir test hatası olduğunu belirtmek için kullanılır.
3 Çıkış kodu 3 , test oturumunun durdurulduğunu gösterir. Bir oturum, örnek olarak Ctrl+C kullanılarak durdurulabilir.
4 Çıkış kodu 4 , kullanılan uzantıların kurulumunun geçersiz olduğunu ve test oturumunun çalıştırılamadığını gösterir.
5 Çıkış kodu 5 , test uygulamasına geçirilen komut satırı bağımsız değişkenlerinin geçersiz olduğunu gösterir.
6 (artık kullanılmaz) Çıkış kodu 6 artık platform tarafından üretilmemiştir; daha önce test oturumunun uygulanmamış bir özellik kullandığını gösteriyordu.
7 Çıkış kodu 7 , bir test oturumunun başarıyla tamamlanamadı ve büyük olasılıkla kilitlendiğini gösterir. Bunun nedeni bir test denetleyicisinin uzantı noktası üzerinden çalıştırılan bir test oturumu olabilir.
8 Çıkış kodu 8 , test oturumunun sıfır test çalıştırdığını gösterir.
9 Çıkış kodu 9 , yürütülen testler için en düşük yürütme ilkesinin ihlal edildiğini gösterir.
10 Çıkış kodu 10 test bağdaştırıcısı olan Testing.Platform Test Framework, MSTest, NUnit veya xUnit'in testin kendisi ile ilgisi olmayan bir altyapı nedeniyle testleri çalıştıralamadığını gösterir. Testler için gerekli bir fikstürün oluşturulamadığı bir örnektir.
11 Çıkış kodu 11, bağımlı işlemden çıkıldığında test işleminin de çıkacağını gösterir.
12 Çıkış kodu 12 , istemci desteklenen protokol sürümlerinden hiçbirini desteklemediğinden test oturumunun çalışamadığını gösterir.
13 Çıkış kodu 13 , komut satırı seçeneği kullanılarak --maximum-failed-tests belirtilen başarısız test sayısı üst sınırına ulaşılması nedeniyle test oturumunun durdurulduğunu gösterir. Daha fazla bilgi için Microsoft.Testing.Platform CLI seçenekleri başvurusunun Seçenekler bölümüne bakın

Ayrıntılı günlüğe kaydetmeyi etkinleştirmek ve sorunları gidermek amacıyla Tanılama günlüğü bölümüne bakın.

Belirli çıkış kodlarını yoksay

Microsoft.Testing.Platform varsayılan olarak katı olacak şekilde tasarlanmıştır ancak yapılandırılabilirlik sağlar. Bu nedenle, kullanıcıların hangi çıkış kodlarının yoksayılacağına karar vermeleri mümkündür (özgün çıkış kodu yerine çıkış kodu 0 döndürülür).

Belirli çıkış kodlarını yoksaymak için --ignore-exit-code komut satırı seçeneğini veya TESTINGPLATFORM_EXITCODE_IGNORE ortam değişkenini kullanın. Kabul edilen geçerli format, yoksaymak için çıkış kodlarının noktalı virgülle ayrılmış bir listesidir (örneğin, --ignore-exit-code 2;3;8). Yaygın bir senaryo, test hatalarının sıfır olmayan bir çıkış koduyla sonuçlanmaması gerektiğini (çıkış kodunu 2yoksaymaya karşılık gelir) göz önünde bulundurmaktır.

Tanılama günlüğü tutma

Platform, test yürütme sorunlarını gidermenize yardımcı olmak için yerleşik tanılama günlüğü sağlar. Tanılama günlüğünü komut satırı seçenekleri veya ortam değişkenleri aracılığıyla etkinleştirebilirsiniz.

Komut satırı seçenekleri

Aşağıdaki platform seçenekleri test uygulamalarınızla ilgili sorunları gidermek için yararlı bilgiler sağlar:

  • --info
  • --diagnostic
  • --diagnostic-synchronous-write
  • --diagnostic-verbosity
  • --diagnostic-file-prefix
  • --diagnostic-output-directory

Ortam değişkenleri

Tanılama günlüklerini ortam değişkenlerini kullanarak da etkinleştirebilirsiniz:

Ortam değişkeni adı Description
TESTINGPLATFORM_DIAGNOSTIC 1olarak ayarlanırsa, tanılama günlüğünü etkinleştirir.
TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY Ayrıntı düzeyini tanımlar. Kullanılabilir değerler Trace, Debug, Information, Warning, Errorveya Critical' dır.
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY Tanılama günlüğünün çıkış dizini belirtilmezse, dosya varsayılan TestResults dizininde oluşturulur.
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX Günlük dosyası adının ön eki. Varsayılan olarak "log_" değerini alır.
TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE Yerleşik dosya günlükçüsüsünü zaman uyumlu bir şekilde günlükleri yazmaya zorlar. İşlemin çöktüğü durumlarda (yani günlük girdilerini kaybetmek istemediğiniz senaryolarda) kullanışlıdır. Bu, test yürütmeyi yavaşlatır.

Uyarı

Ortam değişkenleri, komut satırı bağımsız değişkenlerinden önceliklidir.

Yapılandırma hatalarını düzeltme

Microsoft.Testing.Platform.MSBuild

Microsoft.Testing.Platform.MSBuild ile ilgili yaygın yapılandırma hataları şunlardır.

hata CS8892: Senkron bir giriş noktası 'Program.Main(string[])' bulunduğundan, 'TestingPlatformEntryPoint.Main(string[])' yöntemi giriş noktası olarak kullanılmayacak

Bir test projesinde giriş noktasını (Main) el ile tanımlama veya zaten bir giriş noktası olan bir uygulamadan test projesine başvurmak, Microsoft.Testing.Platformtarafından oluşturulan giriş noktasıyla çakışmaya neden olur. Bu sorunu önlemek için şu adımlardan birini uygulayın:

  • el ile tanımlanan giriş noktanızı kaldırın(genellikle Main'da yönteminizi) ve test platformunun sizin için bir tane oluşturmasına izin verin.

  • <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint> MSBuild özelliğini ayarlayarak giriş noktasının oluşturulmasını devre dışı bırakın.

  • Test projesine başvuran projede, Microsoft.Testing.Platform.MSBuild MSBuild özelliğini ayarlayarak <IsTestingPlatformApplication>false</IsTestingPlatformApplication> geçişli bağımlılığını tamamen devre dışı bırakın. Bu, test olmayan bir projeden test projesine başvurduğunuzda (örneğin, bir test uygulamasına başvuran bir konsol uygulaması) gereklidir.

Microsoft.Testing.Extensions.Fakes

Fakes hatası: COR_PROFILER_PATH ve COR_PROFILER ortam değişkenlerinden profilleyici yolunu çözemedi.

Tüm Fakes derlemeleri bin klasöründe mevcut değilse bu hata oluşabilir.

  • Projenin MSTest.SDK kullandığından veya Microsoft.Testing.Extensions.Fakes referans verdiğinden emin olun.
  • .NET Framework projeleri için <PlatformTarget>AnyCPU</PlatformTarget> ayarlamaktan kaçının, bunun sonucunda NuGet tüm dosyaları bin klasörüne kopyalamaz.