Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
TAEF fournit des fonctionnalités permettant de préconfigurer un modèle de thread COM pour l’environnement dans lequel vous testez l’exécution. Par défaut, les tests Managed © #) et Script s’exécutent sur le thread STA ; pour native, le modèle de thread n’est pas préconfiguré.
La propriété de métadonnées « ThreadingModel » est utilisée pour demander un modèle de threading. Les valeurs prises en charge pour cette propriété sont les suivantes :
| Valeur de propriété | Description |
|---|---|
| STA | Single-Threaded Apartment (CoInitializeEx est appelé avec COINIT_APARTMENTTHREADED indicateur). |
| MTA | Multithreaded Apartment (CoInitializeEx est appelé avec COINIT_MULTITHREADED indicateur). |
| None | Le modèle de thread n’est pas spécifié. |
Configuration d’un modèle de threading
Exemple : Pour demander un modèle de thread MTA à partir du balisage C++ :
class ThreadModelTests
{
TEST_CLASS(ThreadModelTests);
BEGIN_TEST_METHOD(MTAThreadingModelTest)
TEST_METHOD_PROPERTY(L"ThreadingModel", L"STA")
END_TEST_METHOD()
};
Vous pouvez également demander la propriété de modèle de thread pour une classe ou un module. Par exemple,
class ThreadModelTestsWithMTADefault
{
BEGIN_TEST_CLASS(ThreadModelTestsWithMTADefault)
TEST_CLASS_PROPERTY(L"ThreadingModel", L"Mta")
END_TEST_CLASS()
TEST_METHOD(DefaultWithMTASetByClass);
};
De même, vous pouvez également demander un modèle de thread pour les tests managés :
[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();
}
}
Notez que dans le dernier test ci-dessus : SetsOfMetadataTest, il est également possible d’utiliser des jeux de métadonnées et d’exécuter le même test : d’abord avec le modèle de thread sta, puis avec MTA.