共用方式為


測試隔離

TAEF 支援在隔離進程中執行測試。 您可以控制這些進程何時會取代為 IsolationLevel 中繼資料和命令列選項。 這可用於偵測非預期的測試相依性,或降低外泄測試的影響。

下列清單顯示 IsolationLevel 中繼資料和命令列選項的可能值及其意義。

沒有
TAEF 不會隔離任何測試。

模組
TAEF 會針對每個測試 DLL 使用不同的進程主機。 這是預設值。

裝配
與模組相同

Dll
與模組相同


TAEF 會針對每個測試類別使用不同的進程主機。

方法
TAEF 會針對每個測試使用不同的進程主機。 如果測試位於執行群組內,則會將相同的進程主機用於整個執行群組。

測試
與方法相同

使用的 IsolationLevel 中繼資料值是最接近測試層級的指定中繼資料。 如果也設定了命令列 IsolationLevel 選項,則所使用的值就是提供最多隔離的值。

BEGIN_MODULE()
    MODULE_PROPERTY(L"IsolationLevel", L"Class")
END_MODULE()

class MyTestClass1
{
    TEST_CLASS(MyTestClass1);

    BEGIN_TEST_METHOD(MyTest1)
        TEST_METHOD_PROPERTY(L"IsolationLevel", L"Method")
    END_TEST_METHOD()

    TEST_METHOD(MyTest2);
    TEST_METHOD(MyTest3);
};

class MyTestClass2
{
    TEST_CLASS(MyTestClass2);

    TEST_METHOD(MyTest1);
    TEST_METHOD(MyTest2);
};

在上述範例中,會使用三個不同的進程主機:一個用於 MyTestClass1::MyTest1,另一個用於 MyTestClass1 中的其他兩種方法,另一個用於 MyTestClass2。 如果使用者要將 /IsolationLevel:方法新增至te.exe命令列,則會使用五個不同的進程主機:每個測試各有一個。

請注意,如果模組、類別或測試是 中繼資料擴充資料驅動 ,而且要隔離,則會隔離每個中繼資料和/或資料擴充。 這可以藉由讓測試成為 執行群組的成員,在測試層級上防止。

class MyTestClass3 :
{
    BEGIN_TEST_CLASS(MyTestClass3)
        TEST_CLASS_PROPERTY(L"Data:MyParameter1", L"{1, 2, 3}")
        TEST_CLASS_PROPERTY(L"IsolationLevel", L"Class")
    END_TEST_CLASS()

    BEGIN_TEST_METHOD(MyTest1)
        TEST_METHOD_PROPERTY(L"Data:MyParameter2", L"{1, 2, 3}")
        TEST_METHOD_PROPERTY(L"IsolationLevel", L"Method")
        TEST_METHOD_PROPERTY(L"ExecutionGroup", L"MyExecutionGroup")
    END_TEST_METHOD()

    TEST_METHOD(MyTest2);
    TEST_METHOD(MyTest3);
};

在此範例中,會使用六個不同的進程主機。 MyParameter1 的三個值都是隔離的,而 MyTest1 則與 MyTest2 和 MyTest3 隔離。 MyParameter2 的三個值不會隔離,因為它們位於相同的執行群組中。