Condividi tramite


Parallela

TAEF fornisce un meccanismo per eseguire test in parallelo tra più processori.

Garanzie di parallelismo

  • Non verranno mai eseguiti due test non contrassegnati come parallelizzabili .
  • I test paralleli possono essere eseguiti simultaneamente con altri test paralleli e non paralleli.
  • Tutte le operazioni di installazione e pulizia di modulo/classe/test verranno eseguite in modo lineare prima e dopo il test pertinente nello stesso processo.
  • L'installazione di moduli/classi può essere eseguita in parallelo su processi diversi se il modulo o la classe contiene almeno un test parallelo.
  • La modalità di esecuzione parallela non è compatibile con il meccanismo di esecuzione "/inproc".

Contrassegno dei test come parallelizzabili

Esempio (codice nativo):

class MyTests
{

    TEST_CLASS(MyTests);

    BEGIN_TEST_METHOD(ParallelTest)
        TEST_METHOD_PROPERTY(L"Parallel", L"true")
    END_TEST_METHOD()
};

Come con altri metadati generali in TAEF, questo può essere specificato a livello di classe o modulo e verrà ereditato da tutti i test contenuti in tale classe o modulo. Ad esempio, per contrassegnare un intero assembly come parallelizzabile, è possibile eseguire le operazioni seguenti (all'esterno di qualsiasi classe o specifica di test) in un file cpp compilato nella DLL di test:

BEGIN_MODULE()
    MODULE_PROPERTY(L"Parallel", L"true");
END_MODULE()

Questo ambito più ampio può quindi essere sottoposto a override in ambiti più piccoli per disabilitare il parallelismo per determinati test case o classi come indicato di seguito:

class MyTests
{
    TEST_CLASS(MyTests);

    BEGIN_TEST_METHOD(NonParallelTest)
        TEST_METHOD_PROPERTY(L"Parallel", L"false");
    END_TEST_METHOD()
};

Qualsiasi impostazione sia più vicina al metodo di test (i metadati del metodo sono i più vicini, quindi la classe e quindi il modulo) verranno usati per decidere se eseguire questo test in parallelo con altri test.

Abilitazione del parallelismo al prompt dei comandi

L'esecuzione parallela è una funzionalità di consenso esplicito. Anche se i test possono essere contrassegnati come paralleli, TAEF continuerà a eseguire test in modo lineare, a meno che non sia abilitata la modalità di esecuzione parallela al prompt dei comandi:

te unittests\* /parallel