Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pravidla použití podporují správné použití atributů, metod a vzorů MSTest. Tato pravidla zachytí běžné chyby a zajistí, aby vaše testy dodržovaly požadavky a konvence architektury.
Pravidla v této kategorii
| ID pravidla | Title | Závažnost | K dispozici oprava |
|---|---|---|---|
| MSTEST0002 | Testovací třída by měla být platná. | Výstraha | Ano |
| MSTEST0003 | Testovací metoda by měla být platná. | Upozornění → Chyba* | Ano |
| MSTEST0005 | TestContext by měl být platný. | Výstraha | Ano |
| MSTEST0007 | Použijte atribut pro testovací metodu. | Výstraha | Ne |
| MSTEST0008 | TestInitialize by měl být platný. | Výstraha | Ano |
| MSTEST0009 | TestCleanup by měl být platný. | Výstraha | Ano |
| MSTEST0010 | ClassInitialize by měl být platný. | Výstraha | Ano |
| MSTEST0011 | TřídaCleanup by měla být platná. | Výstraha | Ano |
| MSTEST0012 | AssemblyInitialize by mělo být platné. | Výstraha | Ano |
| MSTEST0013 | AssemblyCleanup by měl být platný. | Výstraha | Ano |
| MSTEST0014 | DataRow by měl být platný. | Výstraha | Ano |
| MSTEST0017 | Argumenty asercí by měly být předány ve správném pořadí. | Informace | Ano |
| MSTEST0018 | DynamicData by měla být platná. | Výstraha | Ano |
| MSTEST0023 | Neznegujte booleovské tvrzení. | Informace | Ano |
| MSTEST0024 | Neukládejte statický testContext. | Výstraha | Ne |
| MSTEST0026 | Asertační argumenty by se měly vyhnout podmíněnému přístupu. | Informace | Ne |
| MSTEST0030 | Typ obsahující testovací metodu by měl být testovací třídou. | Výstraha | Ano |
| MSTEST0031 | Nepoužívejte System.ComponentModel.DescriptionAttribute. | Informace | Ano |
| MSTEST0032 | Zkontrolujte podmínku assert, která je vždy pravdivá. | Informace | Ne |
| MSTEST0034 | Použijte ClassCleanupBehavior.EndOfClass. | Informace | Ano |
| MSTEST0035 | Použijte DeploymentItem s testovací metodou nebo testovací třídou. | Informace | Ne |
| MSTEST0037 | Použijte správné metody assert. | Informace | Ano |
| MSTEST0038 | Vyhněte se Assert.AreSame s typy hodnot. | Informace | Ano |
| MSTEST0039 | Použijte novější metody Assert.Throws. | Informace | Ano |
| MSTEST0040 | Vyhněte se použití asertací v asynchronním kontextu void. | Výstraha | Ne |
| MSTEST0041 | Používejte atributy založené na podmínce s testovací třídou. | Výstraha | Ne |
| MSTEST0042 | Duplicitní datový řádek. | Výstraha | Ne |
| MSTEST0043 | Pro testovací metodu použijte atribut opakování. | Upozornění → Chyba* | Ano |
| MSTEST0046 | Místo StringAssert použijte assert. | Informace | Ano |
| MSTEST0048 | Použití vlastnosti TestContext | Výstraha | Ne |
| MSTEST0049 | Flow TestContext CancellationToken. | Informace | Ano |
| MSTEST0050 | Globální zkušební zařízení by mělo být platné. | Výstraha | Ano |
| MSTEST0051 | Assert.Throws by měl obsahovat jeden příkaz. | Informace | Ano |
| MSTEST0052 | Vyhněte se explicitnímu dynamicDataSourceType. | Informace | Ano |
| MSTEST0053 | Vyhněte se parametrům formátu Assert. | Informace | Ano |
| MSTEST0054 | Použijte vlastnost CancellationToken. | Informace | Ano |
| MSTEST0055 | Neignorujte návratovou hodnotu řetězcové metody. | Výstraha | Ne |
| MSTEST0056 | TestMethodAttribute by měl správně nastavit DisplayName. | Informace | Ano |
| MSTEST0057 | TestMethodAttribute by měl šířit informace o zdroji. | Výstraha | Ne |
| MSTEST0058 | Vyhněte se asertům v blocích catch. | Informace | Ne |
| MSTEST0059 | Použijte atribut Parallelize správně. | Výstraha | Ne |
| MSTEST0060 | Duplikovat TestMethodAttribute. | Výstraha | Ano |
| MSTEST0061 | Místo kontroly modulu runtime použijte atribut OSCondition. | Informace | Ano |
| MSTEST0062 | Vyhněte se parametrům testovací metody out/ref. | Výstraha | Ano |
| MSTEST0063 | Testovací třída by měla mít platný konstruktor. | Výstraha | Ne |
| MSTEST0064 | Upřednostňujte asynchronní asertační metody. | Informace | Ne |
| MSTEST0065 | Vyhněte se použití Assert.AreEqual u typů kolekcí. |
Výstraha | Ne |
| MSTEST0067 | Vyhněte se synchronnímu blokování volání v testovacím kódu. | Informace (ve výchozím nastavení zakázané) | Ne |
| MSTEST0068 | Používejte Assert místo CollectionAssert. |
Informace | Ano |
| MSTEST0069 | Zděděné [TestClass] je ignorováno generátorem zdroje MSTest. |
Výstraha | Ne |
| MSTEST0070 |
[MemberCondition] argumenty by měly být platné. |
Výstraha | Ne |
| MSTEST0071 | Testovací metoda by neměla zadávat zobrazovaný název, který se rovná jeho názvu. | Informace | Ano |
* Eskalováno na chybu v režimu Recommended a All.
Obvyklé scénáře
Ověření struktury testu
Ujistěte se, že vaše testovací třídy, metody a zařízení splňují požadavky MSTest:
- MSTEST0002: Požadavky na rozložení testovací třídy (například veřejné, nestatické).
- MSTEST0003: Požadavky na rozložení testovací metody (️⚠ eskalováno na chybu).
- MSTEST0030: Metody s metodou [TestMethod] musí být v [TestClass].
- MSTEST0063: Ověření konstruktoru třídy test.
- MSTEST0069: Použijte atribut [TestClass] přímo na třídu, aby ji zjišťování generované zdrojovým kódem našlo.
Metody životního cyklu
Ověřte metody inicializace a čištění:
- MSTEST0008: Ověření TestInitialize
- MSTEST0009: Ověření testCleanup.
- MSTEST0010: Ověření ClassInitialize.
- MSTEST0011: Ověření ClassCleanup.
- MSTEST0012: Ověřování AssemblyInitialize.
- MSTEST0013: Ověřování AssemblyCleanup.
- MSTEST0034: Nastavte chování úklidu třídy na EndOfClass.
- MSTEST0050: Ověření globálního testovacího zařízení.
Testování řízené daty
Ujistěte se, že se správně používají atributy dat:
- MSTEST0007: Atributy dat musí být u testovacích metod.
- MSTEST0014: Ověření DataRow
- MSTEST0018: Ověření DynamicData.
- MSTEST0042: Detekujte duplicitní řádky dat.
- MSTEST0052: Použijte funkci AutoDetect pro DynamicDataSourceType.
- MSTEST0062: Vyhněte se parametrům out/ref.
Psaní lepších asercí
Pravidla pro správné a efektivní použití asercí:
- MSTEST0017: Předejte očekávané nebo skutečné hodnoty ve správném pořadí.
- MSTEST0023: Negujte podmínky (použijte přímo Assert.IsFalse).
- MSTEST0026: Vyhněte se podmíněným operátorům null v asercích.
- MSTEST0032: Zkontrolujte podmínky, které jsou vždy pravdivé.
- MSTEST0037: Použijte nejvhodnější metodu assert.
- MSTEST0038: Nepoužívejte AreSame s typy hodnot.
- MSTEST0039: Použijte Assert.ThrowsExactly (novější rozhraní API).
- MSTEST0046: Upřednostněte assert před StringAssert.
- MSTEST0051: Assert.Throws by měl testovat jeden příkaz.
- MSTEST0053: Místo parametrů formátu použijte interpolaci řetězců.
- MSTEST0058: Neukládejte kontrolní výrazy do bloků catch.
- MSTEST0064: Upřednostněte asynchronní ověřovací metody před blokováním při práci s asynchronním kódem.
-
MSTEST0065: Nepoužívejte
Assert.AreEqualu typů kolekcí. -
MSTEST0068: Raději
AssertnežCollectionAssert.
Použití TestContext
Správné použití objektu TestContext:
- MSTEST0005: Ověření vlastnosti TestContext
- MSTEST0024: Neukládejte TestContext do statických polí.
- MSTEST0048: Omezený přístup k majetku v zařízeních.
- MSTEST0049: Tokeny pro zrušení procesu z TestContext.
- MSTEST0054: Použijte vlastnost TestContext.CancellationToken.
Asynchronní vzory
Pravidla pro asynchronní testovací kód:
- MSTEST0040: Vyhněte se asertům v metodách void typu asynchronní.
-
MSTEST0067: Vyhněte se
Thread.Sleep,Task.Waita dalším synchronně blokujícím voláním v testovacím kódu (opt-in).
Testovací konfigurace
- MSTEST0031: Použijte správné atributy (nikoli System.ComponentModel.Description).
- MSTEST0035: Použití DeploymentItem.
- MSTEST0041: Atributy podmínky musí být v testovacích třídách.
- MSTEST0043: Atributy opakování musí být u testovacích metod (⚠️ eskalováno na chybu).
- MSTEST0055: Neignorujte návratové hodnoty řetězcové metody.
- MSTEST0056: Nastavte vlastnost DisplayName správně na testMethodAttribute.
- MSTEST0057: Šíření zdrojových informací ve vlastním atributu TestMethodAttribute
- MSTEST0059: Nepoužívejte paralelizaci ani DoNotParallelize.
- MSTEST0060: Vyhněte se duplicitnímu atributu TestMethodAttribute.
- MSTEST0061: Pro kontroly platformy použijte atribut OSCondition.
-
MSTEST0070:
[MemberCondition]Argumenty musí odkazovat na platné členy. - MSTEST0071: Nenastavujte zobrazovaný název, který se rovná názvu testovací metody.