Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo contiene indicazioni per la risoluzione dei problemi per Microsoft.Testing.Platform.
Codici di uscita
Microsoft.Testing.Platform usa codici di uscita noti per comunicare errori di test o errori dell'app. I codici di uscita iniziano da 0 e non sono negativi.
| Codice di uscita | Dettagli |
|---|---|
0 |
Il 0 codice di uscita indica l'esito positivo. Tutti i test scelti per l'esecuzione sono stati eseguiti fino al completamento e non si sono verificati errori. |
1 |
Il 1 codice di uscita indica errori sconosciuti e funge da catch all. Per trovare informazioni e dettagli aggiuntivi sull'errore, esaminare l'output. |
2 |
Viene usato un codice di uscita di 2 per indicare che si è verificato almeno un errore di test. |
3 |
Il codice 3 di uscita indica che la sessione di test è stata interrotta. Una sessione può essere interrotta usando CTRL+C, ad esempio. |
4 |
Il codice 4 di uscita indica che l'installazione delle estensioni usate non è valida e la sessione di test non può essere eseguita. |
5 |
Il codice 5 di uscita indica che gli argomenti della riga di comando passati all'app di test non sono validi. |
6 (non più usato) |
Il codice 6 di uscita non è più prodotto dalla piattaforma, ma in precedenza indicava che la sessione di test usava una funzionalità non implementata. |
7 |
Il codice 7 di uscita indica che una sessione di test non è stata completata correttamente e probabilmente si è verificato un arresto anomalo. È possibile che ciò sia stato causato da una sessione di test eseguita tramite il punto di estensione di un controller di test. |
8 |
Il codice 8 di uscita indica che la sessione di test ha eseguito zero test. |
9 |
Il codice 9 di uscita indica che i criteri di esecuzione minimi per i test eseguiti sono stati violati. |
10 |
Il codice 10 di uscita indica che l'adattatore di test, Testing.Platform Test Framework, MSTest, NUnit o xUnit, non è riuscito a eseguire test per un motivo di infrastruttura non correlato all'auto del test. Un caso in cui non si riesce a creare una fixture necessaria per i test. |
11 |
Il codice 11 di uscita indica che il processo di test verrà chiuso se il processo dipendente viene chiuso. |
12 |
Il codice 12 di uscita indica che la sessione di test non è stata in grado di eseguire perché il client non supporta alcuna delle versioni del protocollo supportate. |
13 |
Il codice 13 di uscita indica che la sessione di test è stata arrestata a causa del raggiungimento del numero massimo di test non riusciti specificati tramite --maximum-failed-tests l'opzione della riga di comando. Per ulteriori informazioni, vedere la sezione Opzioni nel riferimento alle opzioni CLI di Microsoft.Testing.Platform. |
Per abilitare la registrazione dettagliata e risolvere i problemi, vedere Registrazione diagnostica.
Ignora codici di uscita specifici
Microsoft.Testing.Platform è progettato per essere rigoroso per impostazione predefinita, ma consente la configurabilità. Di conseguenza, è possibile che gli utenti decida quali codici di uscita devono essere ignorati (verrà restituito un codice di uscita di 0 anziché il codice di uscita originale).
Per ignorare codici di uscita specifici, usare l'opzione della --ignore-exit-code riga di comando o la TESTINGPLATFORM_EXITCODE_IGNORE variabile di ambiente. Il formato valido accettato è un elenco delimitato da punti e virgola di codici di uscita da ignorare (ad esempio, --ignore-exit-code 2;3;8). Uno scenario comune consiste nel considerare che gli errori di test non devono comportare un codice di uscita diverso da zero (che corrisponde all'ignorare il codice 2di uscita).
Registrazione diagnostica
La piattaforma offre la registrazione diagnostica predefinita che consente di risolvere i problemi di esecuzione dei test. È possibile abilitare la registrazione diagnostica tramite opzioni della riga di comando o variabili di ambiente.
Opzioni della riga di comando
Le opzioni della piattaforma seguenti forniscono informazioni utili per la risoluzione dei problemi delle app di test:
--info--diagnostic--diagnostic-synchronous-write--diagnostic-verbosity--diagnostic-file-prefix--diagnostic-output-directory
Variabili di ambiente
È anche possibile abilitare i log di diagnostica usando le variabili di ambiente:
| Nome variabile di ambiente | Descrzione |
|---|---|
TESTINGPLATFORM_DIAGNOSTIC |
Se impostato su 1, abilita la registrazione diagnostica. |
TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY |
Definisce il livello di verbosità. I valori disponibili sono Trace, Debug, Information, Warning, Erroro Critical. |
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY |
La directory di output per la registrazione diagnostica, se non specificata, è generata nella directory predefinita TestResults. |
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX |
Prefisso per il nome del file di log. Il valore predefinito è "log_". |
TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE |
Forza il logger di file predefinito a scrivere i log in modo sincrono. Utile per le situazioni in cui non si vogliono perdere registrazioni di log (se il processo si arresta in modo anomalo). Ciò rallenta l'esecuzione del test. |
Annotazioni
Le variabili di ambiente hanno la precedenza sugli argomenti della riga di comando.
Risolvere gli errori di configurazione
Microsoft.Testing.Platform.MSBuild
Di seguito sono riportati errori di configurazione comuni correlati a Microsoft.Testing.Platform.MSBuild.
errore CS8892: Il metodo 'TestingPlatformEntryPoint.Main(string[])' non verrà usato come punto di ingresso perché è stato trovato un punto di ingresso sincrono 'Program.Main(string[])'
Definire manualmente un punto di ingresso (Main) in un progetto di test o fare riferimento a un progetto di test da un'applicazione che ha già un punto di ingresso genera un conflitto con il punto di ingresso generato da Microsoft.Testing.Platform. Per evitare questo problema, eseguire una di queste operazioni:
Rimuovere il punto di ingresso definito manualmente, in genere
Mainmetodo in Program.cse consentire alla piattaforma di test di generarne uno automaticamente.Disabilitare la generazione del punto di ingresso impostando la proprietà
<GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>MSBuild.Disabilitare completamente la dipendenza transitiva per
Microsoft.Testing.Platform.MSBuildimpostando la proprietà<IsTestingPlatformApplication>false</IsTestingPlatformApplication>MSBuild nel progetto che fa riferimento a un progetto di test. Questa operazione è necessaria quando si fa riferimento a un progetto di test da un progetto non di test, ad esempio un'app console che fa riferimento a un'applicazione di test.
Microsoft.Testing.Extensions.Fakes
Errore di Fakes: Impossibile risolvere il percorso del profiler dalle variabili di ambiente COR_PROFILER_PATH e COR_PROFILER
Questo errore può verificarsi se non tutti gli assembly Fakes sono presenti nella cartella bin.
- Assicurarsi che il progetto usi il MSTest.SDK o faccia riferimento a Microsoft.Testing.Extensions.Fakes.
- Per i progetti di .NET Framework, evitare di impostare
<PlatformTarget>AnyCPU</PlatformTarget>perché in questo modo NuGet non copia tutti i file nella cartella bin.