Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
TaEF udostępnia funkcje wstępnego konfigurowania modelu wątkowości COM dla środowiska, w którym jest wykonywany test. Domyślnie testy zarządzane © #) i Skrypt są uruchamiane w wątku STA; w przypadku modelu natywnego wątek nie jest wstępnie skonfigurowany.
Właściwość metadanych "ThreadingModel" służy do żądania modelu wątkowego. Obsługiwane wartości dla tej właściwości to:
| Wartość właściwości | Opis |
|---|---|
| STA | Single-Threaded Apartment (CoInitializeEx jest wywoływana z flagą COINIT_APARTMENTTHREADED). |
| MTA | Mieszkanie wielowątkowe (CoInitializeEx jest wywoływany z flagą COINIT_MULTITHREADED). |
| Żaden | Nie określono modelu wątkowego. |
Konfigurowanie modelu wątkowego
Przykład: aby zażądać modelu wątkowego MTA z poziomu znaczników języka C++:
class ThreadModelTests
{
TEST_CLASS(ThreadModelTests);
BEGIN_TEST_METHOD(MTAThreadingModelTest)
TEST_METHOD_PROPERTY(L"ThreadingModel", L"STA")
END_TEST_METHOD()
};
Możesz również zażądać właściwości modelu wątkowego dla klasy lub modułu. Na przykład
class ThreadModelTestsWithMTADefault
{
BEGIN_TEST_CLASS(ThreadModelTestsWithMTADefault)
TEST_CLASS_PROPERTY(L"ThreadingModel", L"Mta")
END_TEST_CLASS()
TEST_METHOD(DefaultWithMTASetByClass);
};
Podobnie można również zażądać modelu wątkowego dla testów zarządzanych.
[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();
}
}
Zwróć uwagę na ostatni test powyżej: SetsOfMetadataTest. Możliwe jest także użycie zestawów metadanych i uruchomienie tego samego testu: najpierw z modelem wątkowania STA, a następnie MTA.