Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Gizleme kuralları, MSTest testleri bağlamında geçerli olmayan diğer çözümleyicilerden (Roslyn veya Visual Studio iş parçacığı çözümleyicileri gibi) gelen tanılamaları otomatik olarak gizler.
Bu kategorideki kurallar
| Kural Kimliği | Başlık | Bastırır |
|---|---|---|
| MSTEST0027 | Test yöntemleri için async son ekini kaldır. | VSTHRD200 |
| MSTEST0028 | Test fikstür yöntemleri için async sonekini bastır. | VSTHRD200 |
| MSTEST0033 | Başlatılmayan null atanamayan başvuruları gizleme. | CS8618 |
| MSTEST0047 | Fikstür metotlarının kullanılmayan TestContext parametresini yok sayın. | IDE0060 |
Gizleme kuralları nasıl çalışır?
Bu kurallar kendi tanılamalarını oluşturmaz. Bunun yerine, test kodunda yanlış tetiklenebilen diğer çözümleyicilerin uyarılarını engeller.
VSTHRD200: Async yöntemler için Async son ekini kullanın
Gizlenen:MSTEST0027, MSTEST0028
Neden gizlensin: Visual Studio iş parçacığı çözümleyicisi (VSTHRD200), zaman uyumsuz yöntemlerin "Zaman uyumsuz" son ekine sahip olması gerektiğini önerir. Ancak test yöntemleri ve test fikstür yöntemleri MSTest tarafından adlandırma kuralları aracılığıyla değil öznitelikler aracılığıyla bulunur. Test yöntemi adlarına (örneğin, TestLoginAsync) "Async" sonekleri eklemek hiçbir değer sağlamaz ve test adlarının daha az okunabilir olmasını sağlayabilir.
Örnek:
[TestMethod]
public async Task TestLogin() // VSTHRD200 would warn without suppression
{
await LoginAsync();
// ...
}
CS8618: Null atanamaz başvuru başlatılmadı
Gizlenen:MSTEST0033
Neden gizlensin: Null atanabilir başvuru türleri kullanılırken, derleyici oluşturucularda başlatılmayan null atanamaz özellikler hakkında uyarır. Ancak MSTest, herhangi bir test yöntemi çalışmadan önce özelliği otomatik olarak başlatır TestContext , bu nedenle uyarı uygulanmaz.
Örnek:
[TestClass]
public class MyTests
{
public TestContext TestContext { get; set; } = null!; // CS8618 would warn without suppression
[TestMethod]
public void TestSomething()
{
// TestContext is guaranteed to be non-null here
TestContext.WriteLine("Test output");
}
}
IDE0060: Kullanılmayan parametreyi kaldırma
Gizlenen:MSTEST0047
Neden gizlenmeli: MSTest, [AssemblyInitialize], [ClassInitialize], [GlobalTestInitialize] veya [GlobalTestCleanup] ile işaretlenen fikstür yöntemlerinde TestContext öğesini parametre olarak almanıza olanak tanır. MSTest, yöntem gövdesi bunu kullanmadığında bile bu parametreyi gerektirir, bu nedenle IDE0060 (kullanılmayan parametreleri işaretleyen) uygulanmaz.
Örnek:
[TestClass]
public class MyTests
{
[ClassInitialize]
public static void ClassInitialize(TestContext context) // IDE0060 would warn without suppression
{
// context isn't used, but MSTest requires the parameter
}
}
Gizleme kurallarını devre dışı bırakma
Bu uyarıları görmeyi tercih ediyorsanız, içindeki .editorconfiggizleme kurallarını devre dışı bırakın:
[*.cs]
dotnet_diagnostic.MSTEST0027.severity = none
dotnet_diagnostic.MSTEST0028.severity = none
dotnet_diagnostic.MSTEST0033.severity = none
dotnet_diagnostic.MSTEST0047.severity = none