Delen via


Evenwijdig

TAEF biedt een mechanisme voor het parallel uitvoeren van tests voor meerdere processors.

garanties voor parallelle uitvoering

  • Geen twee tests die niet als paralleliseerbaar zijn gemarkeerd onder zullen ooit gelijktijdig worden uitgevoerd.
  • Parallelle tests kunnen gelijktijdig worden uitgevoerd met zowel parallelle als niet-parallelle tests.
  • Alle module-/klasse-/testinstallatie en -opschoning worden lineair uitgevoerd voor en na de relevante test in hetzelfde proces.
  • Het instellen van modules/klassen kan parallel worden uitgevoerd op verschillende processen als de module of klasse ten minste één parallelle test bevat.
  • De parallelle uitvoeringsmodus is niet compatibel met het '/inproc' uitvoeringsmechanisme.

markeringstests als parallelleerbaar

Voorbeeld (systeemeigen code):

class MyTests
{

    TEST_CLASS(MyTests);

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

Net als bij andere algemene metagegevens in TAEF kan dit worden opgegeven op klasse- of moduleniveau & worden overgenomen door alle tests in die klasse of module. Als u bijvoorbeeld een volledige assembly wilt markeren als parallelleerbaar, kunt u het volgende doen (buiten een klasse- of testspecificatie) in een cpp-bestand dat is gecompileerd in uw test-DLL:

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

Dit bredere bereik kan daarna worden overschreven op kleinere bereiken om parallellisme voor specifieke testgevallen of klassen uit te schakelen.

class MyTests
{
    TEST_CLASS(MyTests);

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

Welke instelling het dichtst bij de testmethode ligt (de metagegevens van de methode is het dichtst bij elkaar, dan klasse en vervolgens module) wordt gebruikt om te bepalen of deze test parallel met andere tests moet worden uitgevoerd.

Parallellisme inschakelen bij de opdrachtprompt

Parallelle uitvoering is een opt-in-functie. Hoewel tests als parallel kunnen worden gemarkeerd, blijft TAEF lineair tests uitvoeren, tenzij de parallelle uitvoeringsmodus is ingeschakeld bij de opdrachtprompt:

te unittests\* /parallel