Bagikan melalui


Model Utas

TAEF menyediakan fungsionalitas untuk mengonfigurasi model utas COM untuk lingkungan tempat Anda menguji eksekusi. Secara default, pengujian Terkelola © #) dan Skrip berjalan pada utas STA; untuk Asli, model utas tidak dikonfigurasi sebelumnya.

Properti metadata "ThreadingModel" digunakan untuk meminta model utas. Nilai yang didukung untuk properti ini adalah:

Nilai Properti Deskripsi
STA Single-Threaded Apartment (CoInitializeEx dipanggil dengan bendera COINIT_APARTMENTTHREADED).
MTA Apartemen Multithreaded (CoInitializeEx dipanggil dengan bendera COINIT_MULTITHREADED).
Tidak ada Model utas tidak ditentukan.

Mengonfigurasi model utas

Contoh: Untuk meminta model utas MTA dari mark-up C++:

class ThreadModelTests
{

    TEST_CLASS(ThreadModelTests);

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

Anda juga dapat meminta properti model utas untuk kelas atau modul. Misalnya,

class ThreadModelTestsWithMTADefault
{

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

    TEST_METHOD(DefaultWithMTASetByClass);
};

Demikian pula, Anda juga dapat meminta model utas untuk pengujian terkelola:

[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();
    }
}

Perhatikan pada pengujian terakhir di atas: SetsOfMetadataTest, dimungkinkan juga untuk menggunakan set metadata dan menjalankan pengujian yang sama: pertama dengan model threading STA dan kemudian dengan MTA.