2015-11-18 32 views

risposta

21

Risposta breve:

vstest.console.exe /Platform:x64 AppPackages\UnitTestProject1_1.0.0.0_x64_Debug_Test\UnitTestProject1_1.0.0.0_x64_Debug.appx 

Risposta lunga:

  1. Creare il progetto selezionando Universal/Unità Test App (Universal Windows) modello:

    enter image description here

  2. Costruiscila con la riga di comando usando in th e cartella in cui il file di soluzione è

    msbuild /p:Platform=x64;Configuration=Debug

  3. provare a eseguire il comando vstest.console.exe sopra, in risposta breve. Fallirà, dando il seguente messaggio di errore:

    error 0x800B0109: The root certificate of the signature in the app package or bundle must be trusted.. 
    For more details look into Event Viewer under Applications and Services Logs -> Microsoft -> Windows -> AppXDeployment-Server -> Microsoft-Windows-AppXDeploymentServer/Operational. 
    
  4. Per essere in grado di eseguire test da linea di comando, è necessario utilizzare un certificato che ha fiducia radice, o fare il certificato che ha generato da Visual Studio di fiducia. Per questi ultimi, fare doppio clic UnitTestProject1_TemporaryKey.pfx file da Windows Explorer, e seguire le istruzioni predefinite della procedura guidata di importazione, ma cambiare due cose:

    • Set salvare la posizione di macchina locale: enter image description here
    • Posizionare il certificato di certificazione fonti attendibili Negozio di autorità: enter image description here
    • Finire il wizard dovrebbe dire "L'importazione ha avuto successo."
  5. Provare a eseguire vstest.console.exe utilizzando i parametri nella risposta breve e ora dovrebbe eseguire tutti i test.
+2

Soluzione molto utile. Questo mi ha fatto risparmiare un sacco di tempo, grazie! – toroveneno

0

Seguito da @Marinov, UWP non supporta il test dell'applicazione attualmente. Solo la libreria può essere testabile.

Quindi, se si vuole fare test di unità in UWP, si deve tirare i vostri codici di logica fuori dal progetto di App e versarli nel progetto di libreria appena creata. Il progetto di test e il progetto dell'app originale potrebbero essere referenziati in seguito.

3

Ho seguito la risposta di Ivan Marinov, ma avevo bisogno di una soluzione puramente a linea di comando. Una volta che il tuo UWP Unit Test Project funziona e sei pronto per automatizzare, segui questi passaggi:

(Ho chiamato la mia soluzione Win10Universal e il mio progetto di test unitario Win10-UnitTests.Sarà necessario sostituire i nomi nei miei esempi con il proprio)

  1. Aprire il prompt dei comandi come amministratore e andare nella stessa directory come soluzione.

  2. Eseguire MSBuild.exe sulla soluzione.

>"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" Win10Universal.sln /p:Platform=x86;Configuration=Release

  1. Il processo di generazione genererà una directory simile a {} SolutionDirectory/AppPackages/{UnitTestTargetProjectName}/{} Something_Test. Naviga in questa directory e all'interno vedrai un certificato di sicurezza .cer.

>cd AppPackages/Win10-UnitTests/Win10-UnitTests_1.1.0.0._x86_Test

  1. Run CertMgr.exe su questo ha generato il certificato. Questo passaggio avrà esito negativo se non si esegue il prompt dei comandi con i privilegi di amministratore.

>"C:\Program Files (x86)\Windows Kits\10\bin\x86\certmgr.exe" -add Win10-UnitTests_1.1.0.0_x86_Release.cer -s -r localmachine root

  1. Esegui VSTest.Console.exe sul file .appx in questa directory.

>"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" Win10-UnitTests_1.1.0.0_x86_Release.appx /Platform:x86

Si dovrebbe vedere il test di unità elencate nella finestra se hai fatto tutto giusto! Spero che questo ti aiuti!