Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
TAEF biedt functionaliteit voor het vooraf configureren van een COM-threadingmodel voor de omgeving waarin u de test uitvoert. Standaard worden beheerde en scripttests uitgevoerd op een STA-thread; voor native modellen is het threadingmodel niet vooraf geconfigureerd.
De metadata-eigenschap 'ThreadingModel' wordt gebruikt om een threadingmodel aan te vragen. De ondersteunde waarden voor deze eigenschap zijn:
| Eigenschapswaarde | Beschrijving |
|---|---|
| STA | Single-Threaded Appartement (CoInitializeEx wordt aangeroepen met de COINIT_APARTMENTTHREADED vlag). |
| MTA | Multithreaded Apartment (CoInitializeEx wordt aangeroepen met COINIT_MULTITHREADED vlag). |
| Geen | Het threadingmodel is niet opgegeven. |
Een threadingmodel configureren
Voorbeeld: Het MTA-threadingmodel aanvragen via C++-markup:
class ThreadModelTests
{
TEST_CLASS(ThreadModelTests);
BEGIN_TEST_METHOD(MTAThreadingModelTest)
TEST_METHOD_PROPERTY(L"ThreadingModel", L"STA")
END_TEST_METHOD()
};
U kunt ook een threadingmodel-eigenschap aanvragen voor een klasse of een module. Bijvoorbeeld
class ThreadModelTestsWithMTADefault
{
BEGIN_TEST_CLASS(ThreadModelTestsWithMTADefault)
TEST_CLASS_PROPERTY(L"ThreadingModel", L"Mta")
END_TEST_CLASS()
TEST_METHOD(DefaultWithMTASetByClass);
};
Op dezelfde manier kunt u ook een threadingmodel aanvragen voor beheerde tests:
[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();
}
}
In de laatste test hierboven, SetsOfMetadataTest, is het ook mogelijk gebruik te maken van metagegevenssets en dezelfde test uit te voeren: eerst met het STA-threadingmodel en vervolgens met MTA.