Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
| Eigenschappen | Weergegeven als |
|---|---|
| Regel-id | MSTEST0010 |
| Titel | De methode ClassInitialize moet een geldige indeling hebben |
| Categorie | Gebruik |
| Oplossing is brekend of niet-brekend | Niet-brekend |
| Standaard ingeschakeld | Ja |
| Standaard ernst | Waarschuwing |
| Geïntroduceerd in versie | 3.3.0 |
| Is er een codeoplossing | Ja |
Oorzaak
Een methode die is gemarkeerd met [ClassInitialize] moet een geldige indeling hebben.
Beschrijving van regel
Methoden die zijn gemarkeerd met [ClassInitialize] , moeten de volgende indeling hebben om geldig te zijn:
- kan niet worden gedeclareerd voor een algemene klasse zonder dat de
InheritanceBehaviormodus is ingesteld - het moet zijn
public - het moet zijn
static - het mag niet zijn
async void - het mag geen speciale methode zijn (finalizer, operator...).
- het mag niet algemeen zijn
- er moet één parameter van het type worden gebruikt
TestContext - retourtype moet zijn
void,TaskofValueTask -
InheritanceBehavior.BeforeEachDerivedClasskenmerkparameter moet worden opgegeven als de klasse isabstract. -
InheritanceBehavior.BeforeEachDerivedClasskenmerkparameter mag niet worden opgegeven als de klasse issealed.
Het type dat deze methoden declareren, moet ook de volgende regels respecteren:
- Het type moet een
class. - Dit
classmoet zijnpublicofinternal(als het testproject het[DiscoverInternals]kenmerk gebruikt). - Het
classzou niet moeten zijnstatic. - Als dit het
classgeval issealed, moet deze worden gemarkeerd met[TestClass](of een afgeleid kenmerk).
- de klasse mag niet algemeen zijn
Schendingen oplossen
Zorg ervoor dat de methode overeenkomt met de hierboven beschreven indeling.
Wanneer waarschuwingen onderdrukken
Een waarschuwing van deze regel niet onderdrukken. Als u deze regel negeert, worden gemarkeerde exemplaren overgeslagen of leiden ze tot runtimefouten.
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable MSTEST0010
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0010
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst ervan in op none in het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0010.severity = none
Voor meer informatie, zie Hoe u codeanalysewaarschuwingen kunt onderdrukken.