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.
Özellik | Değer |
---|---|
Kural Kimliği | MSTEST0003 |
Başlık | Test yöntemlerinin geçerli düzeni olmalıdır |
Kategori | Kullanım |
Hataya neden olan veya bozulmayan düzeltme | Yeni |
Varsayılan olarak etkin | Yes |
Varsayılan önem derecesi | Uyarı (MSTestAnalysisMode Recommended veya All olarak ayarlanırken hataya yükseltildi) |
Sürümde kullanıma sunulmuştur | 3.2.0 |
bir kod düzeltmesi var mı? | Yes |
Neden
Test yöntemi, gerekli test yöntemi düzeninin tek veya birden çok noktasına uymaz.
Kural açıklaması
Test yöntemleri (özniteliğiyle [TestMethod]
işaretlenmiş yöntemler) MSTest tarafından geçerli kabul edilecek şekilde verilen düzeni izlemelidir:
- bunlar olmalıdır
public
(veyainternal
öznitelik ayarlanmışsa[assembly: DiscoverInternals]
) - bunlar olmamalıdır
static
- MSTest 3.7 veya önceki bir sürüm kullanılıyorsa genel olmamalıdır
- bunlar olmamalıdır
abstract
- geri dönmeleri
void
veyaTask
- bunlar olmamalıdır
async void
- özel bir yöntem olmamalıdır (oluşturucu, sonlandırıcı, işleç...)
- Bu yöntemi belirten tür genel olmalıdır
İhlalleri düzeltme
Test yönteminin yukarıda açıklanan gerekli düzen ile eşleştiğinden emin olun.
Uyarıların ne zaman bastırılması gerekiyor?
Bu kuraldan uyarıyı bastırmayın. MSTest bu yöntemi bir test yöntemi olarak değerlendirmeyeceği için bu kuralın yoksayılması testlerin yoksayılmasıyla sonuçlanır.
Uyarıyı gizleme
Yalnızca tek bir ihlali engellemek istiyorsanız, kuralı devre dışı bırakmak ve sonra yeniden etkinleştirmek için kaynak dosyanıza ön işlemci yönergeleri ekleyin.
#pragma warning disable MSTEST0003
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0003
Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için önem derecesini
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0003.severity = none
Daha fazla bilgi için bkz. Kod analizi uyarılarını gizleme.