A Windows App SDK készült WinUI-alkalmazások tesztelése

Ebben a témakörben néhány javaslatot nyújtunk a Windows App SDKWinUI 3 felhasználói felületi funkciókkal létrehozott alkalmazások funkcióinak tesztelésére és ellenőrzésére. A tesztelés elengedhetetlen része az alkalmazásfejlesztési folyamatnak – segít a hibák korai észlelésében, a kódminőség fenntartásában és az alkalmazás fejlődésével kapcsolatos megbízható felhasználói élmény biztosításában. Az egységtesztek munkafolyamatba való beépítésével magabiztosan újrabontást végezhet a kódon, új funkciókat vehet fel, és elküldheti a frissítéseket, tudva, hogy a meglévő funkciók továbbra is a várt módon működnek.

Oktatóanyag: WinUI 3 egység tesztelési projekt létrehozása.

A Microsoft.UI.Xaml névterekben lévő legtöbb objektumtípust egy felhasználói felületi szálból kell használni egy XAML-alkalmazásfolyamatban. (A WinUI 3-at nem használó Windows App SDK létrehozott alkalmazások teszteléséről a következő, Nem WinUI-funkciók tesztelése című szakaszban olvashat.)

Megjegyzés:

Javasoljuk, hogy a tesztelni kívánt kódot újrabontással húzza ki a fő alkalmazásprojektből, és helyezze egy kódtárprojektbe. Az alkalmazásprojekt és az egységtesztelési projekt is hivatkozhat erre a kódtárprojektre. Ez a szakasz azt ismerteti, hogyan hozhat létre egységteszteket WinUI 3-alkalmazásokhoz Visual Studio a beépített egységtesztelési projektsablonok használatával.

Megjegyzés:

Az itt ismertetett egységtesztelési alkalmazás egy WinUI 3-alkalmazás kontextusában van megírva. Ez minden olyan teszthez szükséges, amely XAML-futtatókörnyezetet igénylő kódot hajt végre. Ez a projekt létrehoz egy XAML felhasználói felületi szálat, és végrehajtja a teszteket.

Ebben az oktatóanyagban a következőket sajátíthatja el:

  • Hozzon létre egy WinUI egységtesztelő alkalmazást projektet Visual Studio.
  • Használja a Visual Studio Test Explorer.
  • Adjon hozzá egy WinUI-osztálykódtár-projektet teszteléshez.
  • Teszteket futtathat a Visual Studio Test Explorerrel.

Előfeltételek

A WinUI-fejlesztéshez szükséges a Visual Studio telepítése és beállítása. Lásd : Rövid útmutató: A környezet beállítása és WinUI 3-projekt létrehozása.

WinUI-egységtesztelési alkalmazásprojekt létrehozása

Első lépésként hozzon létre egy egységtesztelési projektet. A projekttípus tartalmazza az összes szükséges sablonfájlt.

  1. Nyissa meg a Visual Studio, és válassza a Új projekt létrehozása lehetőséget a Start ablakban.

    Képernyőkép a Visual Studio kezdőablakáról.

  2. A Új projekt létrehozása ablakban szűrje a projekteket C#, Windows és WinUI válassza ki a WinUI egységtesztelő alkalmazást sablont, majd válassza a Next

    A Visual Studio

  3. [Nem kötelező] Az új projekt konfigurálása ablakban módosítsa a projekt nevét, a megoldás nevét (törölje a jelölést a Megoldás és projekt elhelyezése ugyanabban a könyvtárban) és a projekt helyének módosítására .

  4. Válassza a Create gombot.

Tesztek futtatása a Test Explorerrel

A tesztprojekt létrehozásakor a tesztek megjelennek a Test Explorerben, amely az egységtesztek futtatására szolgál. A teszteket kategóriákba is csoportosíthatja, szűrheti a tesztlistát, létrehozhat, menthet és futtathat tesztlistákat, hibakeresési egységteszteket és (Visual Studio Nagyvállalati verzióban) elemezheti a kódlefedettségeket.

A UnitTests.cs fájl tartalmazza a Test Explorer által használt egységtesztek forráskódját. Alapértelmezés szerint az itt látható alapszintű mintatesztek automatikusan létrejönnek:

namespace WinUITest1
{
   [TestClass]
   public class UnitTest1
   {
      [TestMethod]
      public void TestMethod1()
      {
         Assert.AreEqual(0, 0);
      }

      // Use the UITestMethod attribute for tests that need to run on the UI thread.
      [UITestMethod]
      public void TestMethod2()
      {
         var grid = new Grid();
         Assert.AreEqual(0, grid.MinWidth);
      }
   }
}
  1. Ha még nem tette meg, hozza létre a megoldást. Ez lehetővé teszi, hogy Visual Studio "felderítse" az összes elérhető tesztet.

  2. Nyissa meg a Test Explorert. Ha nem látható, nyissa meg a Teszt menüt, majd válassza a Tesztkezelőt (vagy nyomja le a Ctrl + E, T billentyűkombinációt).

    A Teszt menü képernyőképe Visual Studio.

  3. Tesztek megtekintése. A Test Explorer ablakban bontsa ki az összes csomópontot (ezen a ponton csak a mintatesztek lesznek jelen).

    A Test Explorer ablakának képernyőképe a Visual Studio alapértelmezett mintatesztek.

  4. Teszteket futtathat.

    • Kattintson a jobb gombbal az egyes tesztcsomópontokra, és válassza a Futtatás lehetőséget.
    • Válasszon ki egy tesztet, és nyomja le a Lejátszás gombot, vagy nyomja le a Ctrl + R, T billentyűkombinációt.
    • Nyomja le az Összes teszt futtatása nézetben gombot, vagy nyomja le a Ctrl + R, V billentyűkombinációt.

    A Tesztböngésző ablakának képernyőképe Visual Studio a teszt helyi menüjében a Futtatás parancs kiemelésével.

  5. Tekintse át az eredményeket. A tesztek befejezése után az eredmények megjelennek a Test Explorer ablakban.

    A Test Explorer ablakának képernyőképe a Visual Studio-ban a tesztfutás eredményeit mutatja.

Osztálytár-projekt hozzáadása teszteléshez

  1. Adjon hozzá egy új projektet az egységtesztelési megoldáshoz. A Solution Explorer kattintson a jobb gombbal a megoldásra, és válassza a Add -> Új projekt... .

    A Megoldás helyi menüjének képernyőképe a Visual Studio-ban, ahol az

  2. Ebben a példában vegyen fel egy WinUI 3 osztálytárprojektet. Az Új projekt ablakban szűrjön a C#/Windows/WinUI fájlra, és válassza a WinUI osztálytár lehetőséget.

    Az Új Projekt ablak képernyőképe, amelyen a WinUI osztálykönyvtár ki van emelve a Visual Studio-ban.

  3. Válassza a Tovább lehetőséget, és adja meg a projekt nevét (ebben a példában használjuk WinUIClassLibrary1) és nyomja le a Létrehozás billentyűt.

    A Solution Explorer-ben kiemelt új 'WinUI Osztálykönyvtár' projekt képernyőképe, a Class1.cs fájl pedig meg van nyitva a kódszerkesztőben.

  4. Adjon hozzá egy újat UserControl a projekthez. A Solution Explorer kattintson a jobb gombbal az imént hozzáadott WinUI 3 osztálytárprojektre, és válassza a helyi menüben a Add -> Új elem lehetőséget.

    Az oldalképek a Megoldás helyi menüjéről, ahol a

  5. Az Új elem hozzáadása ablakban válassza a WinUI csomópontot a Telepített elemek listában, majd válassza a Felhasználói vezérlő lehetőséget az eredmények közül. Nevezze el a vezérlőt UserControl1.

    Az „Új elem hozzáadása” ablak képernyőképe, amelyen a WinUI\/User Control (WinUI) kiemelve van a Visual Studio-ban.

  6. Nyissa meg a UserControl1.xaml.cs kód mögötti fájlt. Ebben a példában egy új nyilvános metódust GetSeven adunk hozzá, amely egyszerűen egy egész számot ad vissza.

    namespace WinUICLassLibrary1
    {
      public sealed partial class UserControll : UserControl
      {
         public UserControl1()
         {
             this.InitializeComponent();
         }
    
         public int GetSeven()
         {
             return 7;
         }
      }
    }
    
  7. Állítsa be a WinUI 3 Osztálytár projektet az egységtesztelési projekt függőségeként, hogy engedélyezhesse a típusok használatát a WinUI 3 osztálytárprojektből. A Solution Explorer osztálytár projektjében kattintson a jobb gombbal a Dependencies elemre, és válassza a Add Project Reference lehetőséget.

    Képernyőkép a Függőségek helyi menüjéről, benne a Projekt hivatkozás hozzáadása kiemelve a Visual Studio-ban.

    Válassza ki az WinUIClassLibrary1 elemet a Projektek listából.

    Képernyőkép a Referenciakezelő párbeszédpanelről, amelyen a WinUIClassLibrary1 projekt van kiválasztva.

  8. Hozzon létre egy új tesztmetódust a UnitTests.cs. Mivel ebben a tesztesetben egy XAML felhasználói felületi szál futtatására van szükség, jelölje meg a standard [UITestMethod] attribútum helyett az [TestMethod] attribútummal.

    [UITestMethod]
    public void TestUserControl1()
    {
       WinUIClassLibrary1.UserControl1 userControl1 = new WinUIClassLibrary1.UserControl1();
       Assert.AreEqual(7, userControl1.GetSeven());
    }
    

    Ez az új tesztelési módszer most már az egységtesztek egyikeként jelenik meg a Test Explorerben .

    A Test Explorer ablakának képernyőképe a Visual Studio-ban, amely mutatja az alapértelmezett mintateszteket és az új egységtesztet.

  9. Teszteket futtathat.

  • Kattintson a jobb gombbal az új tesztcsomópontra, és válassza a Futtatás lehetőséget.
  • Válassza ki az új tesztet, és nyomja le a Lejátszás gombot, vagy nyomja le a Ctrl + R, T billentyűkombinációt.
  • Nyomja le az Összes teszt futtatása nézetben gombot, vagy nyomja le a Ctrl + R, V billentyűkombinációt.

A Test Explorer ablakának képernyőképe a Visual Studio-ban, amely egy befejezett tesztfuttatást mutat az alapértelmezett mintatesztek és az új egységteszt esetében.

Nem WinUI-funkciók tesztelése

Az alkalmazások sok esetben olyan funkciókat tartalmaznak, amelyek nem függnek a Microsoft.UI.Xaml típusától, de továbbra is tesztelést igényelnek. Különböző eszközök állnak rendelkezésre .NET kód teszteléséhez, beleértve a MSTest, NUnit és xUnit. A .NET-alkalmazások tesztelésével kapcsolatos további információkért lásd: Tesztelés .NET.

A Visual Studioban bármelyik tesztelési eszközhöz létrehozhat egy új projektet, ha jobb gombbal kattint a megoldásra a Megoldáskezelőben, és kiválasztja az Add -> New Project lehetőséget a helyi menüből. Válassza ki a C# programozási nyelvet az All languages legördülő listából, a Windows típust az All languages legördülő listából, és a Test lehetőséget az All project types legördülő listából, majd válassza ki a megfelelő teszteszközt a listából (MSTest Test Project, NUnit Test Project vagy xUnit Test Project).

WinUI 3-projektre hivatkozó új MSTest, NUnit vagy xUnit projekt létrehozásakor a következőt kell tennie:

  1. Frissítse a tesztprojekt .csproj fájljában található TargetFramework elemet. Ennek az értéknek meg kell egyeznie a TargetFramework WinUI 3 projektben szereplő értékkel. Alapértelmezés szerint az MSTest, az NUnit és az xUnit-projektek a .NET által támogatott platformok teljes körét célják, de a WinUI 3-projektek csak a Windows támogatják, és pontosabb TargetFramework-feladatokkal is rendelkezik.

    Ha például .NET 8-at céloz meg, frissítse az egységtesztelési projekt TargetFramework elemét <TargetFramework>net8.0</TargetFramework>-ről <TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>- ra.

  2. Frissítse a RuntimeIdentifierst a tesztprojektben.

    <RuntimeIdentifiers Condition="$([MSBuild]::GetTargetFrameworkVersion('$(TargetFramework)')) &gt;= 8">win-x86;win-x64;win-arm64</RuntimeIdentifiers>

    <RuntimeIdentifiers Condition="$([MSBuild]::GetTargetFrameworkVersion('$(TargetFramework)')) &lt; 8">win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>

  3. Adja hozzá a következő tulajdonságot a tesztprojekt .csproj fájljában található PropertyGroup, hogy a teszt betöltse a Windows App SDK futtatókörnyezetet: <WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize>

  4. Győződjön meg arról, hogy a Windows App SDK futtatókörnyezet telepítve van a tesztet futtató gépen. A Windows App SDK üzembe helyezésével kapcsolatos további információkért tekintse meg a Windows App SDK külső helyen (vagy csomagolatlan) csomagba csomagolt, keretrendszerfüggő alkalmazások üzembe helyezési útmutatóját.

További erőforrások