Partilhar via


Configurando testes de unidade usando um arquivo .runsettings

Os testes de unidade no Visual Studio podem ser configurados com um arquivo *.runsettings.(O nome do arquivo não importa, desde que você use a extensão '. RunSettings.') Por exemplo, você pode alterar o .NET Framework no qual os testes serão executados, o diretório onde os resultados de teste são entregues e os dados coletados durante um teste de execução.

Se não desejar adicionar nenhuma configuração especial, não é preciso ter um arquivo *.runsettings.O uso mais frequente é para personalizar a Cobertura do Código.

ObservaçãoObservação

.runsettings e .testsettings

Há dois tipos de arquivo para a configuração de testes.*.runsettings são usados para testes de unidade.E *.testsettings para testes de ambiente de laboratório, testes de carga e desempenho da Web e para personalizar alguns tipos de adaptadores de dados de diagnóstico, como adaptadores de log de evento e IntelliTrace.

Em edições anteriores do Visual Studio até 2010, os testes de unidade também eram personalizados com arquivos *.testsettings.Ainda é possível fazer isso, mas os testes serão executados mais lentamente que usando as configurações equivalentes em um arquivo *.runsettings.

Personalizando testes com um arquivo .runsettings

  1. Adicione um arquivo XML à solução Visual Studio e renomeie-o para test.runsettings.(O nome do arquivo não importa, mas a extensão deve ser .runsettings.)

  2. Substitua o conteúdo do arquivo pelo exemplo.

    Edite-o conforme suas necessidades.

  3. No menu Testar, escolha Configurações de Teste, Selecionar Arquivo de Configurações de Teste.

Você pode criar mais de um arquivo *.runsettings em sua solução e habilitá-los ou desabilitá-los em momentos diferentes com o menu Configurações de Teste.

Habilitar um arquivo de configurações de execução

Copiar este exemplo de arquivo .runsettings

Veja um arquivo *.runsettings típico.Cada elemento do arquivo é opcional, porque cada valor possui um padrão.

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <!-- Configurations that affect the Test Framework -->
  <RunConfiguration>
    <!-- Path relative to solution directory -->
    <ResultsDirectory>.\TestResults</ResultsDirectory>

    <!-- [x86] | x64  
      - You can also change it from menu Test, Test Settings, Default Processor Architecture -->
    <TargetPlatform>x86</TargetPlatform>

    <!-- Framework35 | [Framework40] | Framework45 -->
    <TargetFrameworkVersion>Framework40</TargetFrameworkVersion>
  </RunConfiguration>
  
  <!-- Configurations for data collectors -->
  <DataCollectionRunSettings>
    <DataCollectors>
      <DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
        <Configuration>
          <CodeCoverage>
            <ModulePaths>
              <Exclude>
                <ModulePath>.*CPPUnitTestFramework.*</ModulePath>
              </Exclude>
            </ModulePaths>
          </CodeCoverage>
        </Configuration>
      </DataCollector>
      
    </DataCollectors>
  </DataCollectionRunSettings>
  
  <!-- Adapter Specific sections -->
  
  <!-- MSTest adapter -->
  <MSTest>
    <MapInconclusiveToFailed>True</MapInconclusiveToFailed>
    <CaptureTraceOutput>false</CaptureTraceOutput>
    <DeleteDeploymentDirectoryAfterTestRunIsComplete>False</DeleteDeploymentDirectoryAfterTestRunIsComplete>
    <DeploymentEnabled>False</DeploymentEnabled>
  </MSTest>
  
  
</RunSettings>

O arquivo .runsettings também é usado para configurar Cobertura de Código.

O restante deste tópico descreve o conteúdo do arquivo.

Editar o arquivo .runsettings

O arquivo .runsettings possui os elementos a seguir.

Configuração de execução de teste

Padrão

Valores

ResultsDirectory

O diretório no qual os resultados do teste serão colocados.

TargetFrameworkVersion

Framework40

Framework35, Framework40, Framework45

Isso especifica qual versão do framework de testes de unidade é usada para descobrir e executar os testes.Pode ser diferente da versão da plataforma .NET especificada nas propriedades de compilação do projeto de teste de unidade.

TargetPlatform

x86

x86, x64

TreatTestAdapterErrorsAsWarnings

falso

false, true

Adaptadores de dados de diagnóstico (coletores de dados)

O elemento DataCollectors especifica configurações de adaptadores de dados de diagnóstico.Os adaptadores de dados de diagnóstico são usados para coletar informações adicionais sobre o ambiente e o aplicativo em teste.Cada adaptador tem configurações padrão, e você só precisará fornecer configurações caso não deseje usar os padrões.

Adaptador de cobertura de código

O coletor de dados de cobertura de código cria um log das partes do código do aplicativo que foram utilizadas no teste.Para obter mais informações sobre como personalizar as configurações de cobertura de código, consulte Personalizando análise de cobertura de código.

Outros adaptadores de dados de diagnóstico

O adaptador de cobertura de código é atualmente o único adaptador que pode ser personalizado usando o arquivo de configurações de execução.

Para personalizar qualquer outro tipo de adaptador de dados de diagnóstico, você deve usar um arquivo de configurações de teste.Para obter mais informações, consulte Especificando configurações de teste do Visual Studio.

Configurações de execução do MSTest

Essas configurações são específicas para o adaptador de teste que executa os métodos de teste que têm o atributo [TestMethod].

Configuração

Padrão

Valores

ForcedLegacyMode

false

No Visual Studio 2012, o adaptador MSTest foi otimizado para torná-lo mais rápido e mais escalonável.Alguns comportamentos, como a ordem em que os testes são executados, não podem ser exatamente iguais aos de edições anteriores do Visual Studio.Defina esse valor como true para usar o adaptador mais antigo de teste.

Por exemplo, você poderá usar isso se tiver um arquivo app.config especificado para um teste de unidade.

Recomendamos que você considere refatorar seus testes para permitir o uso do adaptador mais recente.

IgnoreTestImpact

false

O recurso de impacto de teste prioriza os testes que são afetados pelas alterações recentes, quando executados no MSTest ou no Microsoft Test Manager.Essa configuração desativa o recurso.Para obter mais informações, consulte Como coletar dados para verificar quais testes devem ser executados após alterações feitas no código.

SettingsFile

Você pode especificar uma arquivo de configurações de teste para usar com o adaptador MSTest aqui.Você também pode especificar um arquivo de configurações de teste usando o menu Testar, Configurações de Teste, Selecionar Arquivo de Configurações de Teste.

Se você especificar esse valor, também deverá definir ForcedlegacyMode como true.

<RunSettings>
  <MSTest>
    <SettingsFile>my.testsettings</SettingsFile> 
    <ForcedLegacyMode>true</ForcedLegacyMode> 
  </MSTest>
</RunSettings>

KeepExecutorAliveAfterLegacyRun

false

Após a execução do teste ser concluída, o MSTest será fechado.Qualquer processo iniciado como parte do teste também será destruído nesse momento.Se você quiser manter o executor de teste ativo, transforme essa configuração em true.

Por exemplo, você pode usar isso para manter o navegador em execução entre os testes de IU codificados.

DeploymentEnabled

true

Se você definir isso como false, os itens de implantação especificados em seu método de teste não serão copiados para o diretório de implantação.

CaptureTraceOutput

true

Você pode gravar no rastreamento de depuração do método de teste usando Trace.WriteLine.Usando essa configuração, você pode desativar esses rastreamentos de depuração.

DeleteDeploymentDirectoryAfterTestRunIsComplete

true

Você pode manter o Diretório de Implantação após um teste configurando esse valor para false.

MapInconclusiveToFailed

false

Se um teste retornar com um status inconclusivo, ele geralmente será mapeado para o status Ignorado no Gerenciador de Testes.Se você quiser que os testes Inconclusivos sejam mostrados como Falha, use esta configuração.

InProcMode

false

Se você quiser que os testes sejam executados no mesmo processo do adaptador MSTest, defina esse valor como true.Essa configuração fornece um ganho menor de desempenho.Mas se um teste fechar com uma exceção, os outros testes não continuarão.

Consulte também

Conceitos

Personalizando análise de cobertura de código

Outros recursos

Especificando configurações de teste do Visual Studio