Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O TAEF fornece funcionalidade para pré-configurar um modelo de threading COM para o ambiente onde você executa o teste. Por padrão, os testes Managed © #) e Script são executados no thread STA; para Nativo, o modelo de threading não está pré-configurado.
A propriedade de metadados "ThreadingModel" é usada para solicitar um modelo de encadeamento. Os valores suportados para esta propriedade são:
| Valor de Propriedade | Descrição |
|---|---|
| STA | Single-Threaded Apartamento (CoInitializeEx é chamado com COINIT_APARTMENTTHREADED bandeira). |
| MTA | Apartamento Multithread (CoInitializeEx é chamado com o sinalizador COINIT_MULTITHREADED). |
| Nenhum | O modelo de encadeamento não está especificado. |
Configurando um modelo de encadeamento
Exemplo: Para solicitar o modelo de threading MTA na anotação C++:
class ThreadModelTests
{
TEST_CLASS(ThreadModelTests);
BEGIN_TEST_METHOD(MTAThreadingModelTest)
TEST_METHOD_PROPERTY(L"ThreadingModel", L"STA")
END_TEST_METHOD()
};
Você também pode solicitar a propriedade do modelo de execução paralela para uma classe ou um módulo. Por exemplo
class ThreadModelTestsWithMTADefault
{
BEGIN_TEST_CLASS(ThreadModelTestsWithMTADefault)
TEST_CLASS_PROPERTY(L"ThreadingModel", L"Mta")
END_TEST_CLASS()
TEST_METHOD(DefaultWithMTASetByClass);
};
Da mesma forma, você também pode solicitar o modelo de threading para testes gerenciados:
[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();
}
}
Observe no último teste acima: SetsOfMetadataTest, também é possível fazer uso de conjuntos de metadados e executar o mesmo teste: primeiro com o modelo de threading STA e depois com MTA.