Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.
Nyissa meg a Visual Studio, és válassza a Új projekt létrehozása lehetőséget a Start ablakban.
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
[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 .
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);
}
}
}
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.
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).
Tesztek megtekintése. A Test Explorer ablakban bontsa ki az összes csomópontot (ezen a ponton csak a mintatesztek lesznek jelen).
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.
Tekintse át az eredményeket. A tesztek befejezése után az eredmények megjelennek a Test Explorer ablakban.
Osztálytár-projekt hozzáadása teszteléshez
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... .
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.
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.
Adjon hozzá egy újat
UserControla 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 Ú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.
Nyissa meg a UserControl1.xaml.cs kód mögötti fájlt. Ebben a példában egy új nyilvános metódust
GetSevenadunk 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; } } }Á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.
Válassza ki az
WinUIClassLibrary1elemet a Projektek listából.
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.
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.
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:
Frissítse a tesztprojekt .csproj fájljában található
TargetFrameworkelemet. Ennek az értéknek meg kell egyeznie aTargetFrameworkWinUI 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.Frissítse a RuntimeIdentifierst a tesztprojektben.
<RuntimeIdentifiers Condition="$([MSBuild]::GetTargetFrameworkVersion('$(TargetFramework)')) >= 8">win-x86;win-x64;win-arm64</RuntimeIdentifiers><RuntimeIdentifiers Condition="$([MSBuild]::GetTargetFrameworkVersion('$(TargetFramework)')) < 8">win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>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>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
- Az egységteszt alapjai
Tesztelési eszközök a Visual Studio
Windows developer