Aracılığıyla paylaş


MSTest kod analizi

MSTest analizi ("MSTESTxxxx") kuralları C# veya Visual Basic kodunuzu güvenlik, performans, tasarım ve diğer sorunlar açısından inceler.

İpucu

Visual Studio kullanıyorsanız, birçok çözümleyici kuralının sorunu düzeltmek için uygulayabileceğiniz ilişkili kod düzeltmeleri vardır. Ampul simgesi menüsünde kod düzeltmeleri gösterilir.

Kurallar, performans kullanımı gibi kategoriler halinde düzenlenmiştir...

MSTest.TestFramework 3.7'den başlayarak, MSTest.Analyzers NuGet paketi çerçevenin bir bağımlılığıdır. Önceki sürümler için MSTest meta paketi kullanmanız veya MSTest.Analyzers için açıkça bir paket başvurusu eklemeniz gerekir.

MSTestAnalysisMode

MSTest 3.8'den başlayarak, hangi çözümleyicilerin hangi önem derecesinde etkinleştirildiğini belirlemek için MSTestAnalysisMode adlı bir MSBuild özelliği kullanılabilir.

İpucu

Her mod için hangi kuralların hangi önem derecesinde etkinleştirildiğini görmek için NuGet önbelleğindeki ilgi alanı sürümünün paketine gidebilir, globalconfigs dizinini bulabilir ve analiz moduna karşılık gelen .globalconfig dosyasını açabilirsiniz. NuGet önbellek dizinini bulma hakkında daha fazla bilgi için bkz. genel paketleri, önbelleği ve geçici klasörleri yönetme. Bu dizinden mstest.analyzers dizinini bulun, ardından sürümünü (3.8 ve üzeri), sonra da globalconfigs. Alternatif olarak, ilgi alanı sürümünün NuGet paketini nuget.org indirip NuGet Paket Gezgini'nde (Windows uygulaması) görüntüleyebilir veya doğrudan NuGet Paket Gezgini'ninweb uygulaması sürümünde görüntüleyebilirsiniz.

Bu özellik için kullanılabilir değerler:

None

Bu değer, tüm çözümleyicileri none önem derecesine ayarlar ve bunların tümünü devre dışı bırakır. Daha sonra .editorconfig veya .globalconfig dosyaları kullanarak tek tek çözümleyicileri etkinleştirebilirsiniz.

Default

Bu ayar, her kural için varsayılan belgelenmiş davranışı izler.

  • Varsayılan olarak etkinleştirilen kurallar, varsayılan önem derecelerini kullanır.
  • Varsayılan olarak devre dışı bırakılan kurallar none önem derecesini kullanır.

Uyarı

Uyarılar olarak varsayılan olarak etkinleştirilen kurallar, çalışma zamanında sorunlara neden olması beklenen ihlallerdir.

Çoğu geliştiricinin kullanmasını beklediğimiz mod budur. Varsayılan olarak Bilgi (suggestion) önem derecesiyle etkinleştirilen kurallar, uyarılara yükseltilir. Ayrıca, belirli kurallar hem Recommended hem de All modlarında hatalara dönüştürülebilir. Örneğin, MSTEST0003: Test yöntemleri geçerli bir düzene sahip olmalıdırRecommended ve All modlarında hataya yükseltilir.

All

Bu mod Recommended'den daha agresiftir. Tüm kurallar uyarı olarak etkinleştirilir. Belirli kuralların hem Recommended hem de Recommended modlarında hata olarak değerlendirilebileceği All modu için belirtildiği gibi. Örneğin, MSTEST0003: Test yöntemleri geçerli bir düzene sahip olmalıdırRecommended ve All modlarında hataya yükseltilir.

Uyarı

Aşağıdaki kurallar tamamen kabul edilir ve Default, Recommendedveya All modlarında etkinleştirilmez:

Kategoriler

Tasarım kuralları

Tasarım kuralları uygun tasarıma ve iyi uygulamalara uygun test paketleri oluşturmanıza ve sürdürmenize yardımcı olur.

Performans kuralları

Performans kuralları yüksek performanslı testi destekler.

Bastırma kuralları

Gizleme kuralları diğer kurallardan gelen teşhisleri gizlemeyi destekler.

Kullanım kuralları

Kullanım kuralları MSTest'in düzgün kullanımını destekler.

MSTESTEXP

Birkaç MSTest API'si ExperimentalAttributeile işaretlenmiştir. Bu öznitelik, API'nin deneysel olduğunu ve MSTest'in gelecekteki sürümlerinde kaldırılabileceğini veya değiştirilebileceğini gösterir. özniteliği, henüz kararlı olmayan ve üretim kullanımı için uygun olmayan API'leri tanımlamak için kullanılır.

MSTESTEXP tanılaması, kodunuzda deneysel bir API kullanmanız konusunda sizi uyarır. SuppressMessageAttributeile bu tanılamayı engellemek için projenize aşağıdaki kodu ekleyin:

using System.Diagnostics.CodeAnalysis;

[assembly: SuppressMessage("MSTESTEXP", "Justification")]

Alternatif olarak, projenize aşağıdaki kodu ekleyerek bu tanılamayı ön işlemci yönergesiyle gizleyebilirsiniz:

#pragma warning disable MSTESTEXP
        // API that is causing the warning.
#pragma warning restore MSTESTEXP