Megosztás:


Tesztek futtatása AZ MSTesttel

Az MSTest-tesztek többféleképpen is futtathatók az igényeitől függően. Teszteket futtathat IDE-ből (például Visual Studio, Visual Studio Code vagy JetBrains Rider), vagy parancssorból vagy CI-szolgáltatásból (például GitHub Actions vagy Azure DevOps).

Az MSTest korábban a VSTestre támaszkodott a tesztek minden környezetben való futtatásához, de a 3.2.0-s verziótól kezdve az MSTest saját tesztfuttatóval rendelkezik. Ez az új futó egyszerűbb és gyorsabb, mint a VSTest, és ez az MSTest-tesztek futtatásának ajánlott módja.

VSTest vs Microsoft.Testing.Platform (MTP)

Az MSTest a VSTest és a Microsoft.Testing.Platform (MTP) használatával is támogatja a tesztek futtatását. Az MTP-t az MSTest-futó támogatja, amely minden környezetben futtathat teszteket (például folyamatos integrációs (CI)-folyamatokban, parancssori felületen, Visual Studio Test Explorerben és VS Code Text Explorerben). Az MSTest futó közvetlenül az MSTest-tesztprojektekbe van beágyazva, és a tesztek futtatásához nincsenek szükségesek más alkalmazásfüggőségek, mint például vstest.console vagy dotnet test. A teszteket azonban továbbra is futtathatja a következővel dotnet test: .

Az MSTest-futó nyílt forráskódú, és a Microsoft.Testing.Platform kódtárra épül. A kódot a Microsoft.Testing.Platform GitHub-adattárban találja. Az MSTest futtató összecsomagolva érkezik MSTest in 3.2.0 vagy újabb verzióval.

A Microsoft.Testing.Platform engedélyezése MSTest-projektben

Az MSTest SDK használata ajánlott, mivel jelentősen leegyszerűsíti a projektkonfigurációt és a projekt frissítését, és biztosítja a platform (Microsoft.Testing.Platform) verzióinak és bővítményeinek megfelelő igazítását.

Ha használja MSTest SDK, alapértelmezés szerint a Microsoft.Testing.Platform használatát választotta.

<Project Sdk="MSTest.Sdk/4.1.0">

  <PropertyGroup>
    <TargetFramework>net10.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

</Project>

Másik lehetőségként engedélyezheti az MSTest-futót úgy, hogy a projektfájlhoz hozzáadja a EnableMSTestRunner tulajdonságot, és beállítja a OutputType-t Exe-re. Bizonyosodjon meg arról is, hogy a MSTest 3.2.0 vagy újabb verziót használja. Határozottan javasoljuk, hogy frissítsen a legújabb elérhető MSTest-verzióra.

Tekintse meg a következő példaprojektfájlt:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <!-- Enable Microsoft.Testing.Platform, this is an opt-in feature -->
    <EnableMSTestRunner>true</EnableMSTestRunner>
    <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>

    <!--
      Displays error on console in addition to the log file. Note that this feature comes with a performance impact.
      For more information, visit https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-integration-dotnet-test#show-failure-per-test
      -->
    <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>

    <OutputType>Exe</OutputType>

    <TargetFramework>net10.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <!--
      MSTest meta package is the recommended way to reference MSTest.
      It's equivalent to referencing:
          Microsoft.NET.Test.Sdk
          MSTest.TestAdapter
          MSTest.TestFramework
          MSTest.Analyzers
      Starting with 3.8, it also includes:
          Microsoft.Testing.Extensions.TrxReport
          Microsoft.Testing.Extensions.CodeCoverage
    -->
    <PackageReference Include="MSTest" Version="4.1.0" />
  </ItemGroup>

</Project>

Jótanács

Ha biztosítani szeretné, hogy a megoldás összes tesztprojektje használja az MSTest-futót, állítsa be a EnableMSTestRunnerTestingPlatformDotnetTestSupport fájl tulajdonságait és tulajdonságait az egyes projektfájlok helyett.

Konfigurációk és szűrők

.runsettings

Microsoft.Testing.Platform támogatja a runsettings-t a parancssori opció segítségével. A támogatott MSTest-bejegyzések teljes listájáért tekintse meg az MSTest konfigurálása: Runsettings című témakört. Az alábbi parancsok különböző használati példákat mutatnak be.

dotnet run használata:

dotnet run --project Contoso.MyTests -- --settings config.runsettings

dotnet exec használata:

dotnet exec Contoso.MyTests.dll --settings config.runsettings

-vagy-

dotnet Contoso.MyTests.dll --settings config.runsettings

A végrehajtható fájl használata:

Contoso.MyTests.exe --settings config.runsettings

Tesztszűrő

A tesztszűrőt a parancssori lehetőséggel --filterzökkenőmentesen biztosíthatja. Az alábbi parancsok példákat mutatnak be.

dotnet run használata:

dotnet run --project Contoso.MyTests -- --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"

dotnet exec használata:

dotnet exec Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"

-vagy-

dotnet Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"

A végrehajtható fájl használata:

Contoso.MyTests.exe --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"

Lásd még