Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
MSTest, Microsoft Testing Framework, är ett fullt stödt, plattformsoberoende testramverk med öppen källkod för .NET-applikationer. Det gör att du kan skriva och köra tester och tillhandahåller testpaket med integrering till Visual Studio och Visual Studio Code Test Explorers, .NET CLI och många CI-pipelines.
MSTest finns på GitHub och fungerar med alla .NET-mål som stöds.
Viktiga funktioner
MSTest tillhandahåller omfattande testfunktioner:
-
Datadriven testning: Kör tester med flera indata med hjälp av
DataRow,DynamicDataoch externa datakällor. - Testlivscykelhantering: Installation och rensning på sammansättnings-, klass- och testnivåer.
- Parallell körning: Kör tester samtidigt för att minska körningstiden.
- Testorganisation: Kategorisera, prioritera och filtrera tester med metadataattribut.
- Kodanalysverktyg: Identifiera vanliga problem och framtvinga metodtips vid kompileringstid.
- Intyg: Omfattande kontrollmetoder för validering av resultat.
Plattformar som stöds
MSTest stöder en mängd olika .NET-plattformar och målramverk. I följande tabell sammanfattas plattformsstöd och särskilda överväganden:
| Platform | Målramverk | Stöd för trådning | Särskilda attribut | Noteringar |
|---|---|---|---|---|
| .NET | .NET 8+ | Fullständig parallellisering | Alla attribut | Rekommenderas för nya projekt |
| .NET Framework | 4.6.2+ | Fullständig parallellisering | Alla attribut | Fullständigt funktionsstöd |
| UWP | UAP 10, .NET 9+ med UAP | UI-tråd | UITestMethod |
Kräver inställningar <UseUwp>true</UseUwp>; se UWP-exempel |
| WinUI 3 | .NET 8+ | UI-tråd | UITestMethod |
Kräver Windows App SDK; se WinUI-exempel |
| Native AOT | .NET 8+ | Fullständig parallellisering | De flesta attribut | Begränsad funktionsuppsättning; se exempel på intern AOT |
Plattformsspecifika överväganden
UWP-testning
UWP-tester körs i UWP-appcontainern och kräver användargränssnittstråden för många åtgärder:
[TestClass]
public class UwpTests
{
[UITestMethod]
public void TestUwpControl()
{
// Test runs on UI thread
var button = new Button();
Assert.IsNotNull(button);
}
}
Information om UWP-konfiguration finns i Exemplet BlankUwpNet9App.
WinUI 3-testning
WinUI 3-tester kräver också UI-trådåtkomst för testning av visuella komponenter:
[TestClass]
public class WinUITests
{
[UITestMethod]
public void TestWinUIControl()
{
// Test runs on UI thread
var window = new MainWindow();
Assert.IsNotNull(window);
}
}
WinUI-konfiguration finns i Exemplet BlankWinUINet9App och MSTestRunnerWinUI.
Inbyggd AOT
Naturlig AOT-kompilering stöds med vissa begränsningar på grund av begränsade reflektionsegenskaper. Använd källgeneratorer där det är möjligt och testa dina AOT-scenarier med NativeAotRunner-exemplet.
Stöd för STA-trådning
För Windows COM-interopscenarier tillhandahåller MSTest attributen STATestClass och STATestMethod för att köra tester i en entrådig lägenhet. Mer information om STA-trådning, inklusive asynkront fortsättningsstöd med UseSTASynchronizationContext, finns i Threading-attribut.
Testlöpare
MSTest stöder två testkörningsplattformar:
- Microsoft.Testing.Platform (MTP): Den moderna, rekommenderade testplattformen med bättre prestanda och utökningsbarhet.
- VSTest: Den ursprungliga testplattformen och standardtestplattformen för .NET.
För nya projekt rekommenderar vi att du använder Microsoft.Testing.Platform (MTP) med MSTest.Sdk.
MSTest supportpolicy
Sedan v3.0.0 följer MSTest strikt semantisk versionshantering.
MSTest-teamet stöder endast den senaste versionen och uppmuntrar starkt användarna att alltid uppdatera till den senaste versionen för att dra nytta av förbättringar och säkerhetskorrigeringar. Förhandsversioner stöds inte av Microsoft men erbjuds för offentlig testning före den slutliga versionen.
Versionshistorik
MSTest har genomgått en betydande utveckling i större versioner:
- MSTest v1: Det ursprungliga Visual Studio-testramverket
- MSTest v2: Första versionen med öppen källkod med plattformsoberoende stöd
- MSTest v3: Modern omskrivning med förbättrad arkitektur och funktioner
- MSTest v4: Aktuell version med förbättrade funktioner
Mer information om alla versioner finns i MSTest changelog.
Om du uppgraderar från en äldre version kan du läsa migreringsguiderna:
Brytande förändringar
MSTest-teamet granskar noggrant och minimerar störande ändringar. När icke-bakåtkompatibla ändringar krävs använder teamet GitHub-meddelanden och icke-bakåtkompatibla ändringsetiketter i ärenden för att informera communityn tidigt, vilket ger användarna tid att ge feedback och skapa oro innan ändringarna släpps.