Condividi tramite


Testare le app compilate con Windows App SDK e WinUI

In questo argomento, vengono forniti alcuni suggerimenti su come testare e convalidare le funzionalità nelle app create con Windows App SDK usando le funzionalità dell'interfaccia utente (UI) Windows UI Library (WinUI).

Ricerca per categorie testare la funzionalità WinUI nell'app?

La maggior parte dei tipi di oggetto negli spazi dei nomi Microsoft.UI.Xaml deve essere usata da un thread dell'interfaccia utente in un processo dell'applicazione Xaml. Per informazioni dettagliate sui test delle app create con Windows App SDK che non usano WinUI, vedere la sezione Testare la funzionalità non WinUI nell'app?).

La procedura seguente descrive come usare Visual Studio per testare il codice che dipende dai tipi Microsoft.UI.Xaml ed eseguito nel contesto di un'applicazione Xaml:

  1. Creare un progetto di unit test nella stessa soluzione dell'app da testare. (Questo usa MSTest per eseguire il codice di test e inizializzerà una finestra Xaml e un thread dell'interfaccia utente Xaml.

    Fare clic con il pulsante destro del mouse sulla soluzione in Esplora soluzioni, selezionare Aggiungi -> Nuovo progetto dal menu di scelta rapida e scegliere App unit test (WinUI 3 in Desktop) per C# o App unit test (WinUI 3) per C++.

    Screenshot della finestra

  2. Contrassegnare i metodi di test con l'attributo [UITestMethod] invece dell'attributo standard [TestMethod] per assicurarsi che vengano eseguiti nel thread dell'interfaccia utente.

Nota

È consigliabile effettuare il refactoring di qualsiasi codice da testare estrarlo dal progetto principale dell'app e inserirlo in un progetto di libreria. Sia il progetto dell'app che il progetto di unit test possono quindi fare riferimento a tale progetto di libreria.

Per un esempio di uso di questo progetto di test, consultare la sezione Unit test per le app WinUI (Windows UI Library) in Visual Studio .

Come si testano funzionalità non WinUI nell'app?

In molti casi, un'app include funzionalità che non dipendono dai tipi Microsoft.UI.Xaml, ma richiede comunque test. Sono disponibili vari strumenti per il test del codice .NET, tra cui MSTest, NUnit e xUnit. Per maggiori informazioni sul test delle app .NET, vedere Test in .NET.

In Visual Studio è possibile creare un nuovo progetto per uno di questi strumenti di test facendo clic con il pulsante destro del mouse sulla soluzione in Esplora soluzioni, scegliendo Aggiungi -> Nuovo progetto dal menu di scelta rapida, scegliendo C# dal selettore Tutti i linguaggi/Windows dal selettore Tutti i linguaggi/Test dal selettore Tutti i tipi di progetto, quindi selezionare lo strumento di test appropriato dall'elenco (progetto di test MSTest, progetto di test NUnit o progetto di test xUnit).

Quando si crea un nuovo progetto MSTest, NUnit o xUnit che fa riferimento a un progetto WinUI, è necessario:

  1. Aggiornare TargetFramework nel file .csproj del progetto di test. Questo valore deve corrispondere a TargetFramework nel progetto WinUI (). Per impostazione predefinita, i progetti MSTest, NUnit e xUnit hanno come destinazione l'intera gamma di piattaforme supportate da .NET, ma un progetto WinUI supporta solo Windows e ha un targetFramework più specifico.

    Ad esempio, se la destinazione è .NET 8, aggiornare targetFramework del progetto di unit test da <TargetFramework>net8.0</TargetFramework> a <TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>.

  2. Aggiornare RuntimeIdentifiers nel progetto di test.

    <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. Aggiungere la proprietà seguente al PropertyGroup file con estensione csproj del progetto di test per assicurarsi che il test carichi il runtime di Windows App SDK: <WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize>

  4. Verificare che il runtime di Windows App SDK sia installato nel computer che esegue il test. Per maggiori informazioni, consultare la Guida alla distribuzione di Windows App SDK per le app dipendenti dal framework in pacchetto con posizione esterna (o non in pacchetto).