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.
MSTest, Microsoft Testing Framework, je plně podporovaná opensourcová a multiplatformní testovací architektura pro aplikace .NET. Umožňuje psát a spouštět testy a poskytuje sady testů s integrací do Průzkumníků testů sady Visual Studio a Visual Studio Code, rozhraní příkazového řádku .NET a mnoha kanálů CI.
MSTest je hostovaný na GitHubu a funguje se všemi podporovanými cíli .NET.
Klíčové funkce
MSTest poskytuje komplexní možnosti testování:
-
Testování řízené daty: Spouštění testů s více vstupy pomocí
DataRow,DynamicDataa externích zdrojů dat. - Správa životního cyklu testů: Nastavení a vyčištění na úrovních sestavení, tříd a testů
- Paralelní spuštění: Souběžné spouštění testů, aby se zkrátila doba provádění.
- Testovací organizace: Kategorizace, stanovení priorit a filtrování testů pomocí atributů metadat.
- Analyzátory kódu: Zjistí běžné problémy a vynucuje osvědčené postupy v době kompilace.
- Asertace: Komplexní asertační metody pro ověřování výsledků.
Podporované platformy
MSTest podporuje širokou škálu platforem .NET a cílových architektur. Následující tabulka shrnuje podporu platformy a zvláštní aspekty:
| Platforma | Cílové rámce | Podpora vláken | Speciální atributy | Poznámky |
|---|---|---|---|---|
| .NET | .NET 8 a novější | Úplná paralelizace | Všechny atributy | Doporučeno pro nové projekty |
| .NET Framework | 4.6.2+ | Úplná paralelizace | Všechny atributy | Úplná podpora funkcí |
| UPW | UAP 10, .NET 9 a novější s UAP | vlákno uživatelského rozhraní | UITestMethod |
Vyžaduje nastavení <UseUwp>true</UseUwp>; viz ukázka UPW |
| WinUI 3 | .NET 8 a novější | vlákno uživatelského rozhraní | UITestMethod |
Vyžaduje sadu Windows App SDK; viz ukázka WinUI |
| Nativní AOT | .NET 8 a novější | Úplná paralelizace | Většina atributů | Omezená sada funkcí; viz Nativní AOT ukázka |
Aspekty pro konkrétní platformu
Testování UWP
Testy UPW se spouští v kontejneru aplikace UPW a vyžadují vlákno uživatelského rozhraní pro mnoho operací:
[TestClass]
public class UwpTests
{
[UITestMethod]
public void TestUwpControl()
{
// Test runs on UI thread
var button = new Button();
Assert.IsNotNull(button);
}
}
Informace o nastavení UWP viz ukázku BlankUwpNet9App.
Testování WinUI 3
Testy WinUI 3 také vyžadují přístup k vláknu uživatelského rozhraní pro testovací vizuální komponenty:
[TestClass]
public class WinUITests
{
[UITestMethod]
public void TestWinUIControl()
{
// Test runs on UI thread
var window = new MainWindow();
Assert.IsNotNull(window);
}
}
Informace o nastavení WinUI najdete v ukázce BlankWinUINet9App a v ukázce MSTestRunnerWinUI.
Nativní AOT
Nativní kompilace AOT se podporuje s určitými omezeními kvůli omezeným možnostem reflexe. Pokud je to možné, použijte generátory zdrojů a otestujte scénáře AOT pomocí ukázky NativeAotRunner.
Podpora vláken STA
Pro scénáře spolupráce modelu COM systému Windows poskytuje MSTest atributy STATestClass a STATestMethod pro spouštění testů v jednovláknovém apartmánu. Podrobnosti o vláknech STA, včetně podpory asynchronního pokračování s UseSTASynchronizationContext, viz Atributy vláken.
Spouštěče testů
MSTest podporuje dvě platformy pro spouštění testů:
- Microsoft.Testing.Platform (MTP): Moderní doporučená testovací platforma s vylepšeným výkonem a rozšiřitelností.
- VSTest: Původní a výchozí testovací platforma pro .NET.
Pro nové projekty doporučujeme používat MTP s MSTest.Sdk.
Zásady podpory MSTest
Od verze 3.0.0 msTest striktně dodržuje sémantickou správu verzí.
Tým MSTest podporuje pouze nejnovější vydanou verzi a důrazně vyzývá uživatele, aby vždy aktualizovali na nejnovější verzi, aby mohli těžit z vylepšení a oprav zabezpečení. Microsoft verze Preview nepodporuje, ale nabízí se pro veřejné testování před finální verzí.
Historie verzí
MSTest prošel významným vývojem napříč hlavními verzemi:
- MSTest v1: Původní testovací architektura sady Visual Studio
- MSTest v2: První opensourcová verze s podporou pro různé platformy
- MSTest v3: Moderní přepis s vylepšenou architekturou a funkcemi
- MSTest v4: Aktuální verze s vylepšenými funkcemi
Podrobnosti o všech verzích najdete v protokolu změn MSTest.
Pokud upgradujete ze starší verze, projděte si průvodce migrací:
Zásadní změny
Tým MSTest pečlivě zkontroluje a minimalizuje zásadní změny. V případě potřeby zásadních změn tým používá oznámení GitHubu a popisky zásadních změn k včasnému informování komunity a poskytuje uživatelům čas na poskytnutí zpětné vazby a vyvolání obav před vydáním změn.