

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Crea file di configurazione della suite di test IDT
<a name="idt-json-config"></a>

Questa sezione descrive i formati in cui create i file di configurazione da includere quando scrivete una suite di test personalizzata.<a name="required-json"></a>File di configurazione richiesti

`suite.json`  
Contiene informazioni sulla suite di test. Per informazioni, consulta [Configura suite.json](#suite-json).

`group.json`  
Contiene informazioni su un gruppo di test. È necessario creare un `group.json` file per ogni gruppo di test nella suite di test. Per informazioni, consulta [Configura group.json](#group-json).

`test.json`  
Contiene informazioni su un test case. È necessario creare un `test.json` file per ogni test case nella suite di test. Per informazioni, consulta [Configura test.json](#test-json).File di configurazione opzionali

`test_orchestrator.yaml` o `state_machine.json`  
Definisce come vengono eseguiti i test quando IDT esegue la suite di test. SSe [Configura test\$1orchestrator.yaml](#test-orchestrator-config).  
A partire da IDT v4.5.1, si utilizza il `test_orchestrator.yaml` file per definire il flusso di lavoro del test. Nelle versioni precedenti di IDT, si utilizza il file. `state_machine.json` Per informazioni sulla macchina a stati, vedere[Configurare la macchina a stati IDT](idt-state-machine.md).

`userdata_schema.json`  
Definisce lo schema per il [`userdata.json`file](set-custom-idt-config.md#userdata-config-custom) che i test runner possono includere nella configurazione delle impostazioni. Il `userdata.json` file viene utilizzato per tutte le informazioni di configurazione aggiuntive necessarie per eseguire il test ma che non sono presenti nel `device.json` file. Per informazioni, consulta [Configura userdata\$1schema.json](#userdata-schema-json).

I file di configurazione vengono inseriti nel file `<custom-test-suite-folder>` come illustrato qui.

```
<custom-test-suite-folder>
└── suite
    ├── suite.json
    ├── test_orchestrator.yaml
    ├── userdata_schema.json
    ├── <test-group-folder>
        ├── group.json
        ├── <test-case-folder>
            └── test.json
```

## Configura suite.json
<a name="suite-json"></a>

Il `suite.json` file imposta le variabili di ambiente e determina se i dati utente sono necessari per eseguire la suite di test. Utilizzate il seguente modello per configurare il `<custom-test-suite-folder>/suite/suite.json` file: 

```
{
    "id": "<suite-name>_<suite-version>",
    "title": "<suite-title>",
    "details": "<suite-details>",
    "userDataRequired": true | false,
    "environmentVariables": [
        {
            "key": "<name>",
            "value": "<value>",
        },
        ...
        {
            "key": "<name>",
            "value": "<value>",
        }
    ]
}
```

Tutti i campi che includono valori sono obbligatori, come descritto di seguito:

`id`  
Un ID univoco definito dall'utente per la suite di test. Il valore di `id` deve corrispondere al nome della cartella della suite di test in cui si trova il `suite.json` file. Il nome e la versione della suite devono inoltre soddisfare i seguenti requisiti:   
+ `<suite-name>`non può contenere caratteri di sottolineatura.
+ `<suite-version>`è indicato come`x.x.x`, dove `x` è un numero.
L'ID viene visualizzato nei rapporti di test generati da IDT.

`title`  
Un nome definito dall'utente per il prodotto o la funzionalità testata da questa suite di test. Il nome viene visualizzato nella CLI IDT per i test runner.

`details`  
Una breve descrizione dello scopo della suite di test.

`userDataRequired`  
Definisce se i test runner devono includere informazioni personalizzate in un `userdata.json` file. Se imposti questo valore su`true`, devi anche includere il [`userdata_schema.json`file](#userdata-schema-json) nella cartella della suite di test.

`environmentVariables`  
Facoltativo. Una serie di variabili di ambiente da impostare per questa suite di test.    
`environmentVariables.key`  
Il nome della variabile di ambiente.  
`environmentVariables.value`  
Il valore della variabile di ambiente.

## Configura group.json
<a name="group-json"></a>

Il `group.json` file definisce se un gruppo di test è obbligatorio o facoltativo. Utilizzate il seguente modello per configurare il `<custom-test-suite-folder>/suite/<test-group>/group.json` file: 

```
{
    "id": "<group-id>",
    "title": "<group-title>",
    "details": "<group-details>",
    "optional": true | false,
}
```

Tutti i campi che includono valori sono obbligatori, come descritto di seguito:

`id`  
Un ID univoco definito dall'utente per il gruppo di test. Il valore di `id` deve corrispondere al nome della cartella del gruppo di test in cui si trova il `group.json` file e non può contenere caratteri di sottolineatura ()`_`. L'ID viene utilizzato nei report di test generati da IDT. 

`title`  
Un nome descrittivo per il gruppo di test. Il nome viene visualizzato nella CLI IDT per i test runner.

`details`  
Una breve descrizione dello scopo del gruppo di test.

`optional`  
Facoltativo. Imposta `true` per visualizzare questo gruppo di test come gruppo opzionale dopo che IDT ha terminato l'esecuzione dei test richiesti. Il valore predefinito è `false`.

## Configura test.json
<a name="test-json"></a>

Il `test.json` file determina gli eseguibili del test case e le variabili di ambiente utilizzate da un test case. Per ulteriori informazioni sulla creazione di eseguibili per i test case, vedere. [Crea eseguibili per test case IDT](create-test-executables.md)

Utilizzate il seguente modello per configurare il `<custom-test-suite-folder>/suite/<test-group>/<test-case>/test.json` file: 

```
{
    "id": "<test-id>",
    "title": "<test-title>",
    "details": "<test-details>",
    "requireDUT": true | false,
    "requiredResources": [
        {
            "name": "<resource-name>",
            "features": [
                {
                    "name": "<feature-name>",
                    "version": "<feature-version>",
                    "jobSlots": <job-slots>
                }
            ]
        }
    ],
    "execution": {
        "timeout": <timeout>,
        "mac": {
            "cmd": "/path/to/executable",
            "args": [
                "<argument>"
            ],
        },
        "linux": {
            "cmd": "/path/to/executable",
            "args": [
                "<argument>"
            ],
        },
        "win": {
            "cmd": "/path/to/executable",
            "args": [
                "<argument>"
            ]
        }
    },
    "environmentVariables": [
        {
            "key": "<name>",
            "value": "<value>",
        }
    ]
}
```

Tutti i campi che includono valori sono obbligatori, come descritto di seguito:

`id`  
Un ID univoco definito dall'utente per il test case. Il valore di `id` deve corrispondere al nome della cartella del test case in cui si trova il `test.json` file e non può contenere caratteri di sottolineatura ()`_`. L'ID viene utilizzato nei report di test generati da IDT.

`title`  
Un nome descrittivo per il test case. Il nome viene visualizzato nella CLI IDT per i test runner.

`details`  
Una breve descrizione dello scopo del test case.

`requireDUT`  
Facoltativo. Imposta `true` se è necessario un dispositivo per eseguire questo test, altrimenti imposta su`false`. Il valore predefinito è `true`. I test runner configureranno i dispositivi che useranno per eseguire il test nel proprio `device.json` file.

`requiredResources`  
Facoltativo. Un array che fornisce informazioni sui dispositivi di risorse necessari per eseguire questo test.     
`requiredResources.name`  
Il nome univoco da assegnare al dispositivo di risorse durante l'esecuzione di questo test.  
`requiredResources.features`  
Una serie di funzionalità del dispositivo di risorse definite dall'utente.     
`requiredResources.features.name`  
Il nome della funzionalità. La funzionalità del dispositivo per cui si desidera utilizzare questo dispositivo. Questo nome viene confrontato con il nome della funzionalità fornito dal test runner nel `resource.json` file.  
`requiredResources.features.version`  
Facoltativo. La versione della funzionalità. Questo valore viene confrontato con la versione della funzionalità fornita dal test runner nel `resource.json` file. Se non viene fornita una versione, la funzionalità non viene verificata. Se non è richiesto un numero di versione per la funzionalità, lascia vuoto questo campo.  
`requiredResources.features.jobSlots`  
Facoltativo. Il numero di test simultanei che questa funzionalità può supportare. Il valore predefinito è `1`. Se desideri che IDT utilizzi dispositivi distinti per le singole funzionalità, ti consigliamo di impostare questo valore su. `1`

`execution.timeout`  
La quantità di tempo (in millisecondi) che IDT attende prima che il test finisca. Per ulteriori informazioni sull'impostazione di questo valore, vedere. [Crea eseguibili per test case IDT](create-test-executables.md)

`execution.os`  
Gli eseguibili del test case da eseguire in base al sistema operativo del computer host che esegue IDT. I valori supportati sono `linux`, `mac` e `win`.     
`execution.os.cmd`  
Il percorso dell'eseguibile del test case che si desidera eseguire per il sistema operativo specificato. Questa posizione deve trovarsi nel percorso di sistema.  
`execution.os.args`  
Facoltativo. Gli argomenti da fornire per eseguire l'eseguibile del test case.

`environmentVariables`  
Facoltativo. Una serie di variabili di ambiente impostate per questo test case.     
`environmentVariables.key`  
Il nome della variabile di ambiente.  
`environmentVariables.value`  
Il valore della variabile di ambiente.
Se specificate la stessa variabile di ambiente nel `test.json` file e nel `suite.json` file, il valore nel `test.json` file ha la precedenza. 

## Configura test\$1orchestrator.yaml
<a name="test-orchestrator-config"></a>

Un orchestrator di test è un costrutto che controlla il flusso di esecuzione della suite di test. Determina lo stato iniziale di una suite di test, gestisce le transizioni di stato in base a regole definite dall'utente e continua la transizione attraverso tali stati fino a raggiungere lo stato finale. 

Se la vostra suite di test non include un orchestratore di test definito dall'utente, IDT genererà un orchestratore di test per voi.

L'orchestrator di test predefinito svolge le seguenti funzioni:
+ Fornisce ai test runner la possibilità di selezionare ed eseguire gruppi di test specifici, anziché l'intera suite di test.
+ Se non sono selezionati gruppi di test specifici, esegue ogni gruppo di test nella suite di test in ordine casuale. 
+ Genera report e stampa un riepilogo della console che mostra i risultati dei test per ogni gruppo di test e test case.

Per ulteriori informazioni sul funzionamento dell'IDT test orchestrator, consulta. [Configurare l'orchestrator di test IDT](idt-test-orchestrator.md)

## Configura userdata\$1schema.json
<a name="userdata-schema-json"></a>

Il `userdata_schema.json` file determina lo schema in cui i test runner forniscono i dati degli utenti. I dati utente sono necessari se la suite di test richiede informazioni che non sono presenti nel `device.json` file. Ad esempio, i test potrebbero richiedere credenziali di rete Wi-Fi, porte aperte specifiche o certificati che un utente deve fornire. Queste informazioni possono essere fornite a IDT come parametro di input chiamato`userdata`, il cui valore è un `userdata.json` file, che gli utenti creano nella propria `<device-tester-extract-location>/config` cartella. Il formato del `userdata.json` file si basa sul `userdata_schema.json` file incluso nella suite di test.

Per indicare che i test runner devono fornire un `userdata.json` file:

1. Nel `suite.json` file, imposta su`userDataRequired`. `true`

1. Nel tuo`<custom-test-suite-folder>`, crea un `userdata_schema.json` file.

1. Modifica il `userdata_schema.json` file per creare uno schema [JSON IETF Draft v4](https://json-schema.org/specification-links.html#draft-4) valido.

Quando IDT esegue la suite di test, legge automaticamente lo schema e lo usa per convalidare il `userdata.json` file fornito dal test runner. [Se valido, il contenuto del `userdata.json` file è disponibile sia nel contesto [IDT che nel contesto del test orchestrator](idt-context.md).](idt-state-machine.md#state-machine-context)