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.
Kullanım kuralları MSTest özniteliklerinin, yöntemlerinin ve desenlerinin düzgün kullanımını destekler. Bu kurallar yaygın hataları yakalar ve testlerinizin çerçevenin gereksinimlerine ve kurallarına uydığından emin olur.
Bu kategorideki kurallar
| Kural Kimliği | Başlık | Severity | Düzeltme Mevcut |
|---|---|---|---|
| MSTEST0002 | Test sınıfı doğrulanabilir olmalıdır. | Uyarı | Yes |
| MSTEST0003 | Test yöntemi geçerli olmalıdır. | Uyarı → Hata* | Yes |
| MSTEST0005 | TestContext geçerli olmalıdır. | Uyarı | Yes |
| MSTEST0007 | Test yönteminde özniteliği kullanın. | Uyarı | Hayı |
| MSTEST0008 | TestInitialize geçerli olmalıdır. | Uyarı | Yes |
| MSTEST0009 | TestCleanup geçerli olmalıdır. | Uyarı | Yes |
| MSTEST0010 | ClassInitialize geçerli olmalıdır. | Uyarı | Yes |
| MSTEST0011 | ClassCleanup geçerli olmalıdır. | Uyarı | Yes |
| MSTEST0012 | AssemblyInitialize geçerli olmalıdır. | Uyarı | Yes |
| MSTEST0013 | AssemblyCleanup geçerli olmalıdır. | Uyarı | Yes |
| MSTEST0014 | DataRow geçerli olmalıdır. | Uyarı | Yes |
| MSTEST0017 | Doğrulama argümanları doğru sırayla geçirilmelidir. | Bilgi | Yes |
| MSTEST0018 | DynamicData geçerli olmalıdır. | Uyarı | Yes |
| MSTEST0023 | Boole ifadelerini negatiflemeyin. | Bilgi | Yes |
| MSTEST0024 | Statik TestContext'i depolamayın. | Uyarı | Hayı |
| MSTEST0026 | Doğrulama argümanları koşullu erişimden kaçınmalıdır. | Bilgi | Hayı |
| MSTEST0030 | Test yöntemi içeren tür test sınıfı olmalıdır. | Uyarı | Yes |
| MSTEST0031 | System.ComponentModel.DescriptionAttribute kullanmayın. | Bilgi | Yes |
| MSTEST0032 | Her zaman doğru kesinleme koşulunu gözden geçirin. | Bilgi | Hayı |
| MSTEST0034 | ClassCleanupBehavior.EndOfClass kullanın. | Bilgi | Yes |
| MSTEST0035 | DeploymentItem'i test yöntemi veya test sınıfıyla kullanın. | Bilgi | Hayı |
| MSTEST0037 | Uygun onay yöntemlerini kullanın. | Bilgi | Yes |
| MSTEST0038 | Değer türleriyle Assert.AreSame'den kaçının. | Bilgi | Yes |
| MSTEST0039 | Daha yeni Assert.Throws yöntemlerini kullanın. | Bilgi | Yes |
| MSTEST0040 | Doğrulamalar void zaman uyumsuz bağlamda kullanmaktan kaçının. | Uyarı | Hayı |
| MSTEST0041 | Test sınıfıyla koşul tabanlı öznitelikler kullanın. | Uyarı | Yes |
| MSTEST0042 | Yinelenen DataRow. | Uyarı | Hayı |
| MSTEST0043 | Test yönteminde retry özniteliğini kullanın. | Uyarı → Hata* | Yes |
| MSTEST0046 | StringAssert yerine Assert kullanın. | Bilgi | Yes |
| MSTEST0048 | TestContext özellik kullanımı. | Uyarı | Hayı |
| MSTEST0049 | Flow TestContext İptal Belirteci. | Bilgi | Yes |
| MSTEST0050 | Global test fikstürünün geçerli olması gerekir. | Uyarı | Yes |
| MSTEST0051 | Assert.Throws tek bir deyim içermelidir. | Bilgi | Yes |
| MSTEST0052 | Açık DynamicDataSourceType kullanmaktan kaçının. | Bilgi | Yes |
| MSTEST0053 | Assert biçim parametrelerinden kaçının. | Bilgi | Yes |
| MSTEST0054 | CancellationToken özelliğini kullanın. | Bilgi | Yes |
| MSTEST0055 | Dize yöntemi geri dönüş değerini göz ardı etmeyin. | Uyarı | Hayı |
| MSTEST0056 | TestMethodAttribute, DisplayName değerini doğru ayarlamalıdır. | Bilgi | Yes |
| MSTEST0057 | TestMethodAttribute kaynak bilgilerini yaymalıdır. | Uyarı | Hayı |
| MSTEST0058 | Catch bloklarında assert ifadelerinden kaçının. | Bilgi | Hayı |
| MSTEST0059 | Parallelize özniteliğini doğru kullanın. | Uyarı | Hayı |
| MSTEST0060 | Yinelenen TestMethodAttribute. | Uyarı | Yes |
| MSTEST0061 | Çalışma zamanı denetimi yerine OSCondition özniteliğini kullanın. | Bilgi | Yes |
| MSTEST0062 | Out/ref test yöntemi parametrelerinden kaçının. | Uyarı | Yes |
| MSTEST0063 | Test sınıfı geçerli bir oluşturucuya sahip olmalıdır. | Uyarı | Hayı |
| MSTEST0064 | Eşzamansız doğrulama yöntemlerini tercih edin. | Bilgi | Hayı |
| MSTEST0065 | Koleksiyon türlerinde Assert.AreEqual kullanmaktan kaçının. |
Uyarı | Hayı |
| MSTEST0067 | Test kodundaki çağrıları zaman uyumlu bir şekilde engellemekten kaçının. | Bilgi (varsayılan olarak devre dışı) | Hayı |
| MSTEST0068 |
Assertyerine CollectionAssert kullanın. |
Bilgi | Yes |
| MSTEST0069 | Devralınan [TestClass] MSTest kaynak oluşturucusu tarafından yok sayılır. |
Uyarı | Hayı |
| MSTEST0070 |
[MemberCondition] argümanlar geçerli olmalıdır. |
Uyarı | Hayı |
| MSTEST0071 | Test yöntemi, kendi adıyla aynı bir görünen ad belirtmemelidir. | Bilgi | Yes |
| MSTEST0072 |
[AssemblyFixtureProvider] önceden derleme ile desteklenmez. |
Uyarı | Hayı |
| MSTEST0073 | Kaynak anahtarı için sabiti [ResourceLock] tercih edin. |
Bilgi | Hayı |
| MSTEST0074 | İşlem genelindeki durumu değiştiren test bir kaynak kilidi bildirmelidir. | Bilgi | Yes |
| MSTEST0075 | Paralelleştirilmiş testte geçerli dizini değiştirmekten kaçının. | Bilgi | Yes |
| MSTEST0076 | Paralel yürütülen bir testte işlem genelindeki kültür ayarını değiştirmekten kaçının. | Bilgi | Hayı |
| MSTEST0077 | Paralelleştirilmiş testte sabit kodlanmış veya paylaşılan dosya sistemi yollarından kaçının. | Bilgi | Hayı |
| MSTEST0078 |
[DependsOn] argümanlar geçerli olmalıdır. |
Uyarı | Hayı |
| MSTEST0079 | Çalışma zamanı denetimleri yerine ArchitectureCondition özniteliğini kullanın. | Bilgi | Yes |
| MSTEST0080 | Ortam denetimleri yerine CICondition özniteliğini kullanın. | Bilgi | Yes |
| MSTEST0081 |
[TestFilterProvider] geçerli bir test filtresi türüne başvurmalıdır. |
Uyarı | Hayı |
| MSTEST0082 | Test sınıfı, bir yaşam döngüsünü veya test yöntemini farklı bir MSTest sürümünden devralır. | Uyarı | Hayı |
| MSTEST0083 |
[ExecutableCondition] öncesinde, File.Exists denetimleri yerine Process.Start kullanın. |
Bilgi | Yes |
* Recommended ve All modlarında hataya yükseltildi.
Yaygın senaryolar
Test yapısı doğrulaması
Test sınıflarınızın, yöntemlerinizin ve fikstürlerinizin MSTest gereksinimlerini karşıladığından emin olun:
- MSTEST0002: Sınıf düzeni gereksinimlerini (örneğin, genel, statik olmayan) test edin.
- MSTEST0003: Test yönteminin yapısı için gereksinimler (️⚠ Hata seviyesine yükseltildi).
- MSTEST0030: [TestMethod] içeren yöntemler [TestClass] içinde olmalıdır.
- MSTEST0063: Sınıf oluşturucu doğrulamayı test edin.
- MSTEST0069: Kaynak tarafından oluşturulan bulmanın sınıfı bulması için doğrudan [TestClass] uygulayın.
- MSTEST0082: Temel ve türetilmiş test sınıflarını aynı MSTest ana sürümünde tutun.
Yaşam döngüsü yöntemleri
Başlatma ve temizleme yöntemlerini doğrulayın:
- MSTEST0008: TestInitialize doğrulaması.
- MSTEST0009: TestCleanup doğrulaması.
- MSTEST0010: ClassInitialize doğrulama.
- MSTEST0011: ClassCleanup doğrulaması.
- MSTEST0012: AssemblyInitialize doğrulama.
- MSTEST0013: AssemblyCleanup doğrulaması.
- MSTEST0034: ClassCleanupBehavior.EndOfClass değerini ayarlayın.
- MSTEST0050: Genel test fikstür doğrulaması.
- MSTEST0072: Önceden derleme ile paylaşılan montaj fikstür sağlayıcılarını kullanmayın.
- MSTEST0082: Devralınan yaşam döngüsü yöntemlerini test projesinin MSTest sürümüyle yeniden derleyin.
Veri temelli test
Veri özniteliklerinin doğru kullanıldığından emin olun:
- MSTEST0007: Veri öznitelikleri test yöntemlerinde olmalıdır.
- MSTEST0014: DataRow doğrulaması.
- MSTEST0018: DynamicData doğrulaması.
- MSTEST0042: Yinelenen DataRow'ları algılama.
- MSTEST0052: DynamicDataSourceType için AutoDetect kullanın.
- MSTEST0062: Out/ref parametrelerinden kaçının.
Daha iyi doğrulamalar yazma
Doğru ve etkili onay kullanımı için kurallar:
- MSTEST0017: Beklenen/gerçek değerlerini doğru sırada geçirin.
- MSTEST0023: Koşulları olumsuzlaştırmayın (Assert.IsFalse'ü doğrudan kullanın).
- MSTEST0026: Onaylarda null koşullu işleçlerden kaçının.
- MSTEST0032: Her zaman doğru koşulları gözden geçirin.
- MSTEST0037: En uygun onay yöntemini kullanın.
- MSTEST0038: AreSame'i değer türleriyle kullanmayın.
- MSTEST0039: Assert.ThrowsExactly (daha yeni API) kullanın.
- MSTEST0046: StringAssert yerine Assert'i tercih edin.
- MSTEST0051: Assert.Throws bir tek deyimi test etmelidir.
- MSTEST0053: Biçim parametreleri yerine dize ilişkilendirmesini kullanın.
- MSTEST0058: Doğrulama ifadelerini catch bloklarına koymayın.
- MSTEST0064: Eşzamansız kodu engellemek yerine eşzamansız doğrulama yöntemlerini tercih edin.
-
MSTEST0065: Koleksiyon türlerinde
Assert.AreEqualkullanımından kaçının. -
MSTEST0068:
AssertyerineCollectionAsserttercih edin.
TestContext kullanımı
TestContext nesnesinin düzgün kullanımı:
- MSTEST0005: TestContext özellik doğrulaması.
- MSTEST0024: TestContext'i statik alanlarda depolamayın.
- MSTEST0048: Fikstürlerde kısıtlanmış özellik erişimi.
- MSTEST0049: TestContext'ten akış iptal belirteçleri.
- MSTEST0054: TestContext.CancellationToken özelliğini kullanın.
Asenkron desenler
Zaman uyumsuz test kodu için kurallar:
- MSTEST0040: Asenkron void yöntemlerinde doğrulamalardan kaçının.
-
MSTEST0067: Test kodunda
Thread.Sleep,Task.Waitve eşzamanlı olarak engelleyen diğer çağrılardan kaçının (isteğe bağlı).
Paralel test güvenliği
Paralel çalışan testler için kurallar:
- MSTEST0073: Kaynak kilit anahtarları için paylaşılan sabitleri kullanın.
- MSTEST0074: Mutasyonları küresel süreç durumuna kilitleyin.
- MSTEST0075: Geçerli dizin değişikliklerini kilitleyin.
- MSTEST0076: süreç genelinde kültür mutasyonlarından kaçının.
- MSTEST0077: Paylaşılan dosya sistemi yollarından kaçının.
Test yapılandırması
- MSTEST0031: Doğru öznitelikleri kullanın (System.ComponentModel.Description değil).
- MSTEST0035: DeploymentItem kullanımı.
- MSTEST0041: Koşul öznitelikleri test sınıflarında olmalıdır.
- MSTEST0043: Yeniden deneme nitelikleri test yöntemlerinde olmalıdır (️⚠ Hataya yükseltildi).
- MSTEST0055: Dize yöntemi geri dönüş değerlerini yoksaymayın.
- MSTEST0056: TestMethodAttribute üzerinde DisplayName'i düzgün ayarlayın.
- MSTEST0057: Özel TestMethodAttribute'ta kaynak bilgilerini yayma.
- MSTEST0059: Hem Parallelize hem de DoNotParallelize kullanmayın.
- MSTEST0060: Yinelenen TestMethodAttribute'u kullanmaktan kaçının.
- MSTEST0061: Platform denetimleri için OSCondition özniteliğini kullanın.
-
MSTEST0070:
[MemberCondition]argümanlar geçerli üyelere başvurmalıdır. - MSTEST0071: Test yöntemi adına eşit bir görünen ad ayarlamayın.
-
MSTEST0078: Hedefleri ve bağımlılık grafiklerini doğrulayın
[DependsOn]. -
MSTEST0079: Çalışma zamanı mimarisi denetimleri yerine kullanın
ArchitectureCondition. -
MSTEST0080: Ortam denetimleri yerine kullanın
CICondition. - MSTEST0081: Test filtresi sağlayıcısı kayıtlarını doğrulayın.
- MSTEST0082: Başka bir MSTest ana sürümünde derlenen devralınan testleri ve yaşam döngüsü yöntemlerini algılayın.
-
MSTEST0083: Kesinlik temelli yürütülebilir denetim yerine kullanın
ExecutableCondition.