MSTEST0012: AssemblyInitialize-methode moet een geldige indeling hebben
Eigenschappen | Weergegeven als |
---|---|
Regel-id | MSTEST0012 |
Titel | AssemblyInitialize-methode 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 codewijziging | Ja |
Oorzaak
Een methode die is gemarkeerd met [AssemblyInitialize]
moet een geldige indeling hebben.
Beschrijving van regel
Methoden die zijn gemarkeerd met [AssemblyInitialize]
, moeten de volgende indeling hebben om geldig te zijn:
- 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
- het mag niet abstract zijn
- er moet één parameter van het type worden gebruikt
TestContext
- retourtype moet zijn
void
,Task
ofValueTask
Het type dat deze methoden declareren, moet ook de volgende regels respecteren:
- Het type moet een klasse zijn.
- De klasse moet openbaar of intern zijn (als het testproject het kenmerk [DiscoverInternals] gebruikt).
- De klasse moet 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 MSTEST0012
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0012
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.MSTEST0012.severity = none
Voor meer informatie, zie Hoe codeanalysewaarschuwingen onderdrukken.