Freigeben über


Threadingmodelle

TAEF bietet Funktionen zum Vorkonfigurieren eines COM-Threadingmodells für die Umgebung, in der Sie den Test ausführen. Standardmäßig werden verwaltete © #)- und Skripttests im STA-Thread ausgeführt. für systemeigenes Threadingmodell ist nicht vorkonfiguriert.

Die Metadateneigenschaft "ThreadingModel" wird verwendet, um ein Threadingmodell anzufordern. Die unterstützten Werte für diese Eigenschaft sind:

Eigenschaftswert BESCHREIBUNG
STA Single-Threaded Apartment (CoInitializeEx wird mit COINIT_APARTMENTTHREADED Flag aufgerufen).
MTA Multithreaded Apartment (CoInitializeEx wird mit COINIT_MULTITHREADED Flag aufgerufen).
Keine Threadingmodell ist nicht angegeben.

Konfigurieren eines Threadingmodells

Beispiel: So fordern Sie das MTA-Threadingmodell vom C++-Markup an:

class ThreadModelTests
{

    TEST_CLASS(ThreadModelTests);

    BEGIN_TEST_METHOD(MTAThreadingModelTest)
        TEST_METHOD_PROPERTY(L"ThreadingModel", L"STA")
    END_TEST_METHOD()
};

Sie können auch eine Threadingmodelleigenschaft für eine Klasse oder ein Modul anfordern. Beispiel:

class ThreadModelTestsWithMTADefault
{

    BEGIN_TEST_CLASS(ThreadModelTestsWithMTADefault)
        TEST_CLASS_PROPERTY(L"ThreadingModel", L"Mta")
    END_TEST_CLASS()

    TEST_METHOD(DefaultWithMTASetByClass);
};

Ebenso können Sie auch ein Threadingmodell für verwaltete Tests anfordern:

[TestClass]

public class SimpleTests
{
    [TestMethod]
    [TestProperty("ThreadingModel", "MTA")]
    public void Test1()
    {
        Verify.IsTrue(true);
    }

    [TestMethod]
    [TestProperty("ThreadingModel", "STA")]
    public void Test2()
    {
        Verify.IsTrue(true);
    }

    [TestMethod]
    [TestProperty("ThreadingModel", "{STA; MTA}")]
    public void SetsOfMetadataTest()
    {
        Log.Comment("In CSharpThreadingModelExample.SetsOfMetadataTest");
        DisplayAppartmentState();
    }
}

Beachten Sie im letzten Test oben: SetsOfMetadataTest, es ist auch möglich, Metadatensätze zu verwenden und denselben Test auszuführen: zuerst mit STA-Threadingmodell und dann mit MTA.