Condividi tramite


Riavvio

TAEF consente a un test di specificare che può causare o richiedere il riavvio del computer. La funzionalità è costituita da due a tre componenti: metadati per contrassegnare il test come eventualmente causando o richiedendo un riavvio, un'API per richiedere che il TAEF esegua un riavvio o comunichino al TAEF di un riavvio avviato dal test in sospeso e un'opzione di comando per acconsentire esplicitamente all'esecuzione di questi test durante l'esecuzione in locale.

Comportamento

La semantica specifica del riavvio del computer richiede alcune modifiche al modello di esecuzione TAEF, le garanzie delle operazioni di installazione e pulizia e il comportamento di esito positivo e negativo.

  • Il comportamento di riavvio è disponibile solo per un test (con i metadati appropriati), non per le fixture (installazione e pulizia).
  • Se l'API reboot viene usata da qualsiasi posizione diversa da un test con il markup appropriato, la funzione non restituirà. Al contrario, TAEF termina il processo di test. Rappresenta un bug nel modo in cui è stato scritto il test e il codice di test deve essere corretto.
  • Le fixture di test non verranno eseguite sul limite di riavvio. Ciò significa che le operazioni di disinstallazione non vengono eseguite prima del riavvio (indipendentemente dal fatto che il test avvii il riavvio o le richieste che il TAEF causi il riavvio stesso) e le operazioni di installazione non verranno eseguite dopo il riavvio.
  • La registrazione (e di conseguenza gli errori di log) verrà ignorata dal momento in cui si invia una notifica o si richiede un riavvio fino al termine del test.

Metadati

Per abilitare l'uso delle API di riavvio, è necessario contrassegnare un test impostando i metadati RebootPossiblesu "true". Questi metadati rispettano le consuete regole di ereditarietà dei metadati, quindi possono essere specificati a livello di classe se qualsiasi test nella classe potrebbe essere riavviato (anche se, data la natura piuttosto pesante del riavvio, sarebbe consigliabile prendere decisioni esplicite su quale test può e non può avviare riavvii). Per esempi di specifiche di metadati, vedere la documentazione relativa alla creazione di test in C++ e creazione di test in C# .

API

Esistono due funzioni principali per la gestione dei riavvii del computer:

  • Reboot(Option) richiede che TAEF avvii un riavvio del computer di test.
  • RebootCustom(Option) notifica al TAEF che il test causerà un riavvio del computer di test. Questa API supporta anche l'arresto anomalo del sistema. TAEF garantisce che i dati applicabili vengano scaricati dopo la restituzione dell'API.

Il parametro Option specifica il comportamento di ripresa, uno dei seguenti:

  • Rieseguire, causando l'esecuzione dello stesso test da parte di TAEF dopo il riavvio
  • Continuare, causando l'esecuzione del test successivo dopo il riavvio

Nativo

Accedere alle API di riavvio includendo l'intestazione Interruption.h e chiamando le funzioni nello spazio dei nomi WEX::TestExecution::Interruption . Le quattro chiamate possibili sono:

using namespace WEX::TestExecution;
Interruption::Reboot(RebootOption::Rerun);
Interruption::Reboot(RebootOption::Continue);
Interruption::RebootCustom(RebootOption::Rerun);
Interruption::RebootCustom(RebootOption::Continue);

Gestito

Chiamare uno dei due metodi nella classe statica Interruzione in WEX. Spazio dei nomi TestExecution , che si trova all'interno diTe.Managed.dll:

using WEX.TestExecution;
Interruption.Reboot(RebootOption.Rerun);
Interruption.Reboot(RebootOption.Continue);
Interruption.RebootCustom(RebootOption.Rerun);
Interruption.RebootCustom(RebootOption.Continue);

Utilizzo del prompt dei comandi

L'utilizzo ideale per questa funzionalità consiste nell'eseguire test TAEF che potrebbero essere riavviati con l'esecuzione tra computer o tramite WTT. In questi casi TAEF abilita l'esecuzione del riavvio in modo implicito* perché non deve interrompere il flusso di lavoro. Se si eseguono test di riavvio manualmente nel computer locale o se è necessario eseguire l'override del percorso predefinito usato da TAEF per memorizzarne nella cache lo stato, sarà necessario acconsentire esplicitamente al riavvio dei test. In caso contrario, qualsiasi test di riavvio verrà contrassegnato come bloccato. Per abilitare i test di riavvio durante l'esecuzione in locale, usare l'argomento di comando seguente:

Te.exe /rebootStateFile:MyRestartFile.xml

TAEF creerà il file specificato per archiviarne lo stato (che i test sono già stati eseguiti, qualsiasi comando TAEF o opzioni di ambiente e così via) e riprenderà da dove è stato interrotto quando riprende dopo il riavvio. TAEF gestisce nuovamente l'esecuzione di se stessa dopo il riavvio del computer.

Si noti che questa opzione non funziona nei computer Arm a causa della rimozione di una funzionalità da cui dipende TAEF per riprendere i test dopo il riavvio (chiave RunOnce).

* Finché non si usano funzionalità di esecuzione incompatibili (attualmente parallele e modalità di test).

Domande frequenti

Se si sceglie Riesegui, è possibile stabilire se il test viene richiamato per la prima volta o dopo un riavvio?

TAEF non fornisce alcuna funzionalità per ottenere questo risultato. La finalità dell'opzione di riesecuzione consiste nell'consentire di scrivere test che potrebbero richiedere un numero indeterminato di riavvii in base allo stato del computer, ad esempio l'esecuzione di Windows Update fino al completamento. Prendere in considerazione l'uso di un oggetto ExecutionGroup e l'opzione Continua per suddividere le attività in operazioni di test separate che si verificano in sequenza prima/dopo il riavvio.

Quali tipi di test TAEF sono supportati?

Questa funzionalità è disponibile per i test nativi, gestiti e script.