Run the following command to check whether the Avalonia templates are already available:
dotnet new --list | grep AvaloniaIf the list is empty, install the templates:
dotnet new install Avalonia.TemplatesCreate the working folder and solution:
mkdir SampleAvaloniaNUnit
cd SampleAvaloniaNUnit
dotnet new sln -n SampleAvaloniaNUnitGenerate the app project and add it to the solution:
dotnet new avalonia.app -o SampleAvaloniaNUnit
dotnet sln SampleAvaloniaNUnit.sln add SampleAvaloniaNUnit/SampleAvaloniaNUnit.csprojCreate the test project and register it with the solution:
dotnet new nunit -o SampleAvaloniaNUnit.Tests
dotnet sln SampleAvaloniaNUnit.sln add SampleAvaloniaNUnit.Tests/SampleAvaloniaNUnit.Tests.csprojReference the app from the tests and add the headless packages:
dotnet add SampleAvaloniaNUnit.Tests/SampleAvaloniaNUnit.Tests.csproj reference SampleAvaloniaNUnit
dotnet add SampleAvaloniaNUnit.Tests package Avalonia.Headless.NUnit
# Optional, only if the Fluent theme is required during tests
dotnet add SampleAvaloniaNUnit.Tests package Avalonia.Themes.FluentManually add the following files to the test project to enable headless UI coverage:
SampleAvaloniaNUnit.Tests/TestAppBuilder.csSampleAvaloniaNUnit.Tests/HeadlessUiTests.csSampleAvaloniaNUnit.Tests/UI/HeadlessUi_MainWindow_BindingTests.csSampleAvaloniaNUnit.Tests/Unit/Vm_SampleVmTests.csSampleAvaloniaNUnit.Tests/Unit/Domain_ParserServiceTests.cs
Each file wires up either the headless AppBuilder bootstrapper or concrete UI/unit tests that exercise bindings and domain logic.
Execute the tests to ensure everything is wired correctly:
dotnet test SampleAvaloniaNUnit.TestsGather cross-platform coverage data during the test run:
dotnet test SampleAvaloniaNUnit.Tests --collect:"XPlat Code Coverage"The resulting reports are written beneath SampleAvaloniaNUnit.Tests/TestResults/.
Prüfe zuerst, ob die Avalonia-Vorlagen bereits installiert sind:
dotnet new --list | grep AvaloniaFalls keine Treffer erscheinen, installiere die Vorlagen:
dotnet new install Avalonia.TemplatesArbeitsordner und Solution erzeugen:
mkdir SampleAvaloniaNUnit
cd SampleAvaloniaNUnit
dotnet new sln -n SampleAvaloniaNUnitApp-Projekt generieren und der Solution hinzufügen:
dotnet new avalonia.app -o SampleAvaloniaNUnit
dotnet sln SampleAvaloniaNUnit.sln add SampleAvaloniaNUnit/SampleAvaloniaNUnit.csprojTestprojekt erstellen und in die Solution eintragen:
dotnet new nunit -o SampleAvaloniaNUnit.Tests
dotnet sln SampleAvaloniaNUnit.sln add SampleAvaloniaNUnit.Tests/SampleAvaloniaNUnit.Tests.csprojApp-Referenz setzen und Headless-Pakete einbinden:
dotnet add SampleAvaloniaNUnit.Tests/SampleAvaloniaNUnit.Tests.csproj reference SampleAvaloniaNUnit
dotnet add SampleAvaloniaNUnit.Tests package Avalonia.Headless.NUnit
# Optional, nur falls das Fluent-Theme im Test benoetigt wird
dotnet add SampleAvaloniaNUnit.Tests package Avalonia.Themes.FluentFüge die folgenden Dateien im Testprojekt hinzu, um Headless-UI und Unit-Tests abzudecken:
SampleAvaloniaNUnit.Tests/TestAppBuilder.csSampleAvaloniaNUnit.Tests/HeadlessUiTests.csSampleAvaloniaNUnit.Tests/UI/HeadlessUi_MainWindow_BindingTests.csSampleAvaloniaNUnit.Tests/Unit/Vm_SampleVmTests.csSampleAvaloniaNUnit.Tests/Unit/Domain_ParserServiceTests.cs
Diese Dateien stellen den Headless-AppBuilder bereit und enthalten Beispieltests für Bindings sowie Domainlogik.
Prüfe den Aufbau durch einen Testlauf:
dotnet test SampleAvaloniaNUnit.TestsSammle plattformübergreifende Coverage-Daten:
dotnet test SampleAvaloniaNUnit.Tests --collect:"XPlat Code Coverage"Die Reports liegen anschliessend unter SampleAvaloniaNUnit.Tests/TestResults/.