Extensão VSTest Bridge

Essa extensão fornece uma camada de compatibilidade com o VSTest permitindo estruturas de teste que já estão implementadas com o VSTest para:

  • Rode facilmente com Microsoft.Testing.Platform (MTP) sem a necessidade de uma reescrita significativa.
  • Dê suporte ao VSTest e ao MTP com a mesma implementação da estrutura de teste.

Essa extensão é enviada como parte do pacote NuGet Microsoft.Testing.Extensions.VSTestBridge .

Compatibilidade com o VSTest

A principal finalidade dessa extensão é oferecer uma experiência de atualização fácil e suave para os usuários do VSTest, permitindo um modo duplo em que a nova plataforma está habilitada e, em paralelo, um modo de compatibilidade é oferecido para permitir que os fluxos de trabalho usuais continuem funcionando.

Suporte a Runsettings

Essa extensão permite que você forneça um arquivo VSTest .runsettings, mas nem todas as opções nesse arquivo são selecionadas pela plataforma. Descrevemos abaixo as configurações compatíveis e sem suporte, opções de configuração e alternativas para as opções de configuração do VSTest mais usadas.

Quando habilitado pela estrutura de teste, você pode usar --settings <SETTINGS_FILE> para fornecer o arquivo .runsettings.

Elemento RunConfiguration

Os seguintes elementos RunConfiguration não são compatíveis com MTP:

Node Descrição Razão/Solução alternativa
MaxCpuCount Essa configuração controla o nível de paralelismo no nível do processo. Use 0 para habilitar o paralelismo máximo no nível do processo. Quando o MTP é usado com o MSBuild, essa opção é descarregada para o MSBuild. Quando um único executável é executado, essa opção não tem significado para MTP.
ResultsDirectory O diretório em que os resultados do teste são colocados. O caminho é relativo ao diretório que contém o arquivo .runsettings. Use a opção de linha de comando --results-directory para determinar o diretório onde os resultados do teste serão colocados. Se o diretório especificado não existir, ele será criado. O padrão é TestResults no diretório que contém o aplicativo de teste.
TargetFrameworkVersion Essa configuração define a versão da estrutura ou a família da estrutura a ser usada para executar testes. Essa opção é ignorada. As propriedades <TargetFramework> ou <TargetFrameworks> do MSBuild determinam a estrutura de destino do aplicativo. Os testes são hospedados no aplicativo final.
TargetPlatform Essa configuração define a arquitetura a ser usada para executar testes. <RuntimeIdentifier> determina a arquitetura do aplicativo final que hospeda os testes.
TratarErrosDoAdaptadorDeTesteComoAvisos Suprime erros do adaptador de teste para que sejam convertidos em avisos. O MTP permite que apenas um tipo de teste seja executado em um único assembly, e a falha ao carregar o framework de teste ou outras partes da infraestrutura se tornará um erro que não pode ser ignorado, pois significa que alguns testes não puderam ser detectados ou executados.
TestAdaptersPaths Um ou mais caminhos para o diretório em que os TestAdapters estão localizados O MTP não usa o conceito de adaptadores de teste e não permite o carregamento dinâmico de extensões, a menos que elas façam parte da compilação e sejam registradas em Program.cs, seja automaticamente por meio de alvos de compilação ou manualmente.
TestCaseFilter Um filtro para limitar os testes que serão executados. A partir da v1.6, agora há suporte para essa entrada de runsettings. Antes dessa versão, você deveria usar a opção de linha de comando --filter.
TestSessionTimeout Permite que os usuários finalizem uma sessão de teste quando ele exceder o tempo limite determinado. Não há outra opção.
DotnetHostPath Especifique um caminho personalizado para o host dotnet usado para executar o testhost. O MTP não está realizando nenhuma resolução adicional do .NET. Depende totalmente de como o dotnet se comporta, que pode ser controlado por variáveis de ambiente, como DOTNET_HOST_PATH.
TreatNoTestsAsError Saia com código de saída diferente de zero quando nenhum teste for descoberto. O MTP apresentará um erro por padrão quando nenhum teste for descoberto ou executado em um aplicativo de teste. Você pode definir quantos testes você espera encontrar no assembly usando o parâmetro da linha de comando --minimum-expected-tests, que tem como padrão 1.

Elemento DataCollectors

O MTP não está usando coletores de dados. Em vez disso, adota o conceito de extensões em processo e extensões fora de processo. Cada extensão é configurada pelo respectivo arquivo de configuração ou através da linha de comando.

Mais importante ainda são as extensões hang e crash, e a extensão code coverage.

Elemento LoggerRunSettings

Os registradores em MTP são configurados por meio de parâmetros de linha de comando ou por definições no código.

Suporte para filtro de VSTest

Essa extensão também oferece a capacidade de usar o mecanismo de filtragem VSTest para descobrir ou executar somente os testes que correspondem à expressão de filtro. Para obter mais informações, consulte a seção Detalhes da opção de filtro ou, para obter detalhes específicos da estrutura, consulte a página Executando testes de unidade seletivos.

Quando o framework de teste estiver habilitado, você pode usar --filter <FILTER_EXPRESSION>.

Parâmetros TestRun

Você pode passar parâmetros para a execução de teste usando a opção de linha de comando --test-parameter no formato key=value. Essa opção pode ser especificada várias vezes, uma para cada parâmetro a ser definido.

Esses parâmetros podem ser acessados pela estrutura de teste na execução do teste: