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