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.
MTP supporta l'uso di file di configurazione e variabili di ambiente per configurare il comportamento della piattaforma di test. Questo articolo descrive le impostazioni di configurazione che è possibile usare per configurare la piattaforma di test.
testconfig.json
La piattaforma di test usa un file di configurazione denominato [nomeapp].testconfig.json per configurare il comportamento della piattaforma di test. Il file testconfig.json è un file JSON che contiene le impostazioni di configurazione per la piattaforma di test.
Il file testconfig.json ha la struttura seguente:
{
"platformOptions": {
"resultDirectory": "./TestResults"
}
}
La piattaforma rileverà e caricherà automaticamente il [nomeapp].testconfig.json file che si trova nella directory di output del progetto di test (vicino al file eseguibile).
Quando si usa Microsoft.Testing.Platform.MSBuild, è sufficiente creare un file testconfig.json che verrà rinominato automaticamente in [nomeapp].testconfig.json e spostato nella directory di output del progetto di test.
A partire da MTP 1.5, è possibile usare l'argomento --config-file della riga di comando per specificare il percorso del testconfig.json. Questo file ha la precedenza sul file [nomeapp].testconfig.json.
Nota
Il [nomeapp].testconfig.json file verrà sovrascritto nelle build successive.
Usare un testconfig.json centralizzato
Se si desidera utilizzare un unico testconfig.json condiviso tra più progetti di test, è possibile collocarlo in una posizione centrale e passarlo tramite --config-file. Quando MSBuild è disponibile (ad esempio, dotnet test o dotnet run), è possibile usare la proprietà TestingPlatformCommandLineArguments di MSBuild per passare automaticamente l'argomento. L'aggiunta di questo a un file Directory.Build.props nella directory radice del repository garantisce che tutti i progetti di test utilizzino la stessa configurazione:
<PropertyGroup>
<TestingPlatformCommandLineArguments>
$(TestingPlatformCommandLineArguments) --config-file $(MSBuildThisFileDirectory)testconfig.json
</TestingPlatformCommandLineArguments>
</PropertyGroup>
Precedenza della configurazione
Quando la stessa impostazione può essere specificata in più modi, MTP la risolve nell'ordine seguente (prima corrispondenza vince):
- Argomenti della riga di comando (ad esempio,
--results-directory) - Variabili di ambiente
- impostazioni ditestconfig.json
- Impostazioni predefinite integrate
Opzioni della piattaforma
La platformOptions sezione del file ditestconfig.json configura il comportamento principale della piattaforma di test. Nella tabella seguente sono elencate tutte le opzioni della piattaforma supportate:
| Ingresso | Predefinito | Description |
|---|---|---|
resultDirectory |
TestResults |
Directory in cui vengono inseriti i risultati del test. Può essere un percorso relativo (risolto dalla directory di lavoro corrente) o un percorso assoluto. L'opzione --results-directory della riga di comando ha la precedenza. |
exitProcessOnUnhandledException |
false |
Se impostato su true, il processo host di test termina immediatamente in caso di eccezioni non gestite anziché consentire una chiusura controllata. La TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION variabile di ambiente (valori 1 o 0) ha la precedenza. |
Nota
Sono disponibili ulteriori opzioni interne della piattaforma per scenari avanzati, ad esempio timeout delle named pipe per i controller dell’host di test. Queste opzioni sono destinate all'uso dell'infrastruttura e non sono descritte qui.
Esempio:
{
"platformOptions": {
"resultDirectory": "../../TestResults",
"exitProcessOnUnhandledException": false
}
}
Le opzioni di estensione sono disponibili solo tramite CLI
Le funzionalità dell'estensione, ad esempio dump di arresto anomalo, dump di blocco, nuovo tentativo, report TRX e copertura del codice, non sono configurabili tramite testconfig.json. Queste funzionalità vengono configurate esclusivamente tramite argomenti della riga di comando.
Per informazioni di riferimento complete sulle opzioni della riga di comando, vedere Informazioni di riferimento sulle opzioni dell'interfaccia della riga di comando mtp.
Testare le impostazioni specifiche del framework
I framework di test possono definire sezioni di configurazione personalizzate nel file testconfig.json . Vedere la documentazione relativa al framework di test:
- MSTest: Configurare MSTest - testconfig.json
- xUnit.net v3: xUnit.net testconfig.json
- NUnit: consultare la documentazione di NUnit per il supporto più recente di Microsoft.Testing.Platform.
- TUnit: consulta la documentazione di TUnit per il supporto più recente di Microsoft.Testing.Platform.
testconfig.json di esempio
L'esempio seguente mostra un filetestconfig.json che configura le opzioni della piattaforma e le impostazioni MSTest:
{
"platformOptions": {
"resultDirectory": "./TestResults"
},
"mstest": {
"parallelism": {
"enabled": true,
"workers": 4,
"scope": "method"
},
"timeout": {
"test": 30000
},
"execution": {
"considerFixturesAsSpecialTests": true
}
}
}
Migrazione da .runsettings a testconfig.json
Se si esegue la migrazione da un file con estensione runsettings , la tabella seguente esegue il mapping delle impostazioni comuni alle relative alternative o equivalenti testconfig.json :
| Impostazione di .runsettings | equivalente di testconfig.json | Note |
|---|---|---|
RunConfiguration/ResultsDirectory |
platformOptions.resultDirectory |
|
RunConfiguration/MaxCpuCount |
Nessun equivalente | Il parallelismo a livello di processo è controllato dall'opzione dotnet test --max-parallel-test-modules o MSBuild /m . |
MSTest/* |
mstest.* |
Vedere Configurare MSTest - testconfig.json. |
xUnit/* |
xUnit.* |
Vedere xUnit.net testconfig.json. |
LoggerRunSettings/Loggers |
Solo CLI | Usare --report-trx o opzioni CLI simili. |
DataCollectionRunSettings (colpa) |
Solo CLI | Usare le opzioni CLI --crashdump e --hangdump. Vedere Arresti anomali e dump di blocco. |
DataCollectionRunSettings (copertura) |
Solo CLI | Usare l'opzione --coverage CLI. Vedi copertura del codice. |
TestRunParameters |
Interfaccia della riga di comando di --test-parameter |
Usare --test-parameter key=value nella riga di comando. |
Variabili di ambiente
Le variabili di ambiente possono essere usate per fornire alcune informazioni di configurazione di runtime.
Nota
Le variabili di ambiente hanno la precedenza sulle impostazioni di configurazione nel file testconfig.json.
TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION variabile di ambiente
Se impostato su 1, il processo host di test viene chiuso immediatamente in caso di eccezioni non gestite. Se impostato su 0, la piattaforma consente l'arresto controllato. Questa impostazione ha la precedenza sulla platformOptions:exitProcessOnUnhandledException configurazione.
TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT variabile di ambiente
Sostituisce il timeout predefinito (300 secondi) usato per le connessioni tramite pipe denominate tra il controller dell'host di test e l'host di test. Il valore deve essere una stringa compatibile con TimeSpan.
TESTINGPLATFORM_UI_LANGUAGE variabile di ambiente
A partire da MTP 1.5, questa variabile di ambiente imposta la lingua della piattaforma per la visualizzazione di messaggi e log usando un valore locale come en-us. Questo linguaggio ha la precedenza sui linguaggi di Visual Studio e .NET SDK. I valori supportati sono uguali a per Visual Studio. Per altre informazioni, vedere la sezione relativa alla modifica del linguaggio del programma di installazione nella documentazione di installazione di visual Studio .
TESTINGPLATFORM_DIAGNOSTIC variabile di ambiente
Se impostato su 1, abilita la registrazione diagnostica.
TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY variabile di ambiente
Definisce il livello di verbosità quando la diagnostica è abilitata. I valori disponibili sono Trace, Debug, Information, Warning, Erroro Critical.
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY variabile di ambiente
Directory di output del log diagnostico. Se non specificato, il file viene generato nella directory TestResults predefinita.
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX variabile di ambiente
Prefisso per il nome del file di log. Di default è "log_".
TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE variabile di ambiente
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.
TESTINGPLATFORM_EXITCODE_IGNORE variabile di ambiente
Elenco delimitato da punto e virgola di codici di uscita da ignorare. Quando un codice di uscita viene ignorato, il processo restituisce 0 invece . Ad esempio, TESTINGPLATFORM_EXITCODE_IGNORE=2;8 ignora gli errori di test e gli scenari senza test eseguiti.
Nota
Le variabili di ambiente correlate alla diagnostica hanno la precedenza sui corrispondenti --diagnostic-* argomenti della riga di comando.