Compartilhar via


VSTest@3 – Tarefa de Teste do Visual Studio v3

Use essa tarefa para executar testes funcionais e de unidade (Selenium, Appium, teste de interface do usuário codificado etc.) usando o executor de Teste do Visual Studio (VSTest). Você pode executar estruturas de teste que têm um adaptador de teste do Visual Studio. As estruturas de exemplo são MSTest, xUnit, NUnit, Chutzpah (para testes JavaScript usando QUnit, Mocha e Jasmine), etc. Os testes podem ser distribuídos em vários agentes usando essa tarefa.

Nota

VSTest@3 é a versão mais recente da tarefa e deve ser usada em seus pipelines.

Sintaxe

# Visual Studio Test v3
# Run unit and functional tests (Selenium, Appium, Coded UI test, etc.) using the Visual Studio Test (VsTest) runner. Test frameworks that have a Visual Studio test adapter such as MsTest, xUnit, NUnit, Chutzpah (for JavaScript tests using QUnit, Mocha and Jasmine), etc. can be run. Tests can be distributed on multiple agents using this task (version 2 and later).
- task: VSTest@3
  inputs:
    #azureSubscription: # string. Alias: ConnectedServiceName. Azure Resource Manager connection. 
  # Test selection
    testSelector: 'testAssemblies' # 'testAssemblies' | 'testPlan' | 'testRun'. Required. Select tests using. Default: testAssemblies.
    testAssemblyVer2: # string. Required when testSelector = testAssemblies. Test files. 
    #testPlan: # string. Required when testSelector = testPlan. Test plan. 
    #testSuite: # string. Required when testSelector = testPlan. Test suite. 
    #testConfiguration: # string. Required when testSelector = testPlan. Test configuration. 
    #tcmTestRun: '$(test.RunId)' # string. Optional. Use when testSelector = testRun. Test Run. Default: $(test.RunId).
    searchFolder: '$(System.DefaultWorkingDirectory)' # string. Required. Search folder. Default: $(System.DefaultWorkingDirectory).
    #resultsFolder: '$(Agent.TempDirectory)\TestResults' # string. Test results folder. Default: $(Agent.TempDirectory)\TestResults.
    #testFiltercriteria: # string. Optional. Use when testSelector = testAssemblies. Test filter criteria. 
    #runOnlyImpactedTests: False # boolean. Optional. Use when testSelector = testAssemblies. Run only impacted tests. Default: False.
    #runAllTestsAfterXBuilds: '50' # string. Optional. Use when testSelector = testAssemblies && runOnlyImpactedTests = true. Number of builds after which all tests should be run. Default: 50.
    #uiTests: false # boolean. Test mix contains UI tests. Default: false.
  # Execution options
    #vstestLocationMethod: 'version' # 'version' | 'location'. Select test platform using. Default: version.
    #vsTestVersion: 'latest' # 'latest' | '17.0' | '16.0' | '15.0' | '14.0' | 'toolsInstaller'. Optional. Use when vstestLocationMethod = version. Test platform version. Default: latest.
    #vstestLocation: # string. Optional. Use when vstestLocationMethod = location. Path to vstest.console.exe. 
    #runSettingsFile: # string. Settings file. 
    #overrideTestrunParameters: # string. Override test run parameters. 
    #pathtoCustomTestAdapters: # string. Path to custom test adapters. 
    #runInParallel: False # boolean. Run tests in parallel on multi-core machines. Default: False.
    #runTestsInIsolation: False # boolean. Run tests in isolation. Default: False.
    #codeCoverageEnabled: False # boolean. Code coverage enabled. Default: False.
    #otherConsoleOptions: # string. Other console options. 
    #diagnosticsEnabled: false # boolean. Collect advanced diagnostics in case of catastrophic failures. Default: false.
    #collectDumpOn: 'onAbortOnly' # 'onAbortOnly' | 'always' | 'never'. Optional. Use when diagnosticsEnabled = true. Collect process dump and attach to test run report. Default: onAbortOnly.
    #rerunFailedTests: False # boolean. Rerun failed tests. Default: False.
    #rerunType: 'basedOnTestFailurePercentage' # 'basedOnTestFailurePercentage' | 'basedOnTestFailureCount'. Optional. Use when rerunFailedTests = true. Do not rerun if test failures exceed specified threshold. Default: basedOnTestFailurePercentage.
    #rerunFailedThreshold: '30' # string. Optional. Use when rerunFailedTests = true && rerunType = basedOnTestFailurePercentage. % failure. Default: 30.
    #rerunFailedTestCasesMaxLimit: '5' # string. Optional. Use when rerunFailedTests = true && rerunType = basedOnTestFailureCount. # of failed tests. Default: 5.
    #rerunMaxAttempts: '3' # string. Optional. Use when rerunFailedTests = true. Maximum # of attempts. Default: 3.
  # Advanced execution options
    #distributionBatchType: 'basedOnTestCases' # 'basedOnTestCases' | 'basedOnExecutionTime' | 'basedOnAssembly'. Batch tests. Default: basedOnTestCases.
    #batchingBasedOnAgentsOption: 'autoBatchSize' # 'autoBatchSize' | 'customBatchSize'. Optional. Use when distributionBatchType = basedOnTestCases. Batch options. Default: autoBatchSize.
    #customBatchSizeValue: '10' # string. Required when distributionBatchType = basedOnTestCases && batchingBasedOnAgentsOption = customBatchSize. Number of tests per batch. Default: 10.
    #batchingBasedOnExecutionTimeOption: 'autoBatchSize' # 'autoBatchSize' | 'customTimeBatchSize'. Optional. Use when distributionBatchType = basedOnExecutionTime. Batch options. Default: autoBatchSize.
    #customRunTimePerBatchValue: '60' # string. Required when distributionBatchType = basedOnExecutionTime && batchingBasedOnExecutionTimeOption = customTimeBatchSize. Running time (sec) per batch. Default: 60.
    #dontDistribute: False # boolean. Replicate tests instead of distributing when multiple agents are used in the job. Default: False.
  # Reporting options
    #testRunTitle: # string. Test run title. 
    #platform: # string. Build platform. 
    #configuration: # string. Build configuration. 
    #publishRunAttachments: true # boolean. Upload test attachments. Default: true.
    #failOnMinTestsNotRun: False # boolean. Fail the task if a minimum number of tests are not run. Default: False.
    #minimumExpectedTests: '1' # string. Optional. Use when failOnMinTestsNotRun = true. Minimum # of tests. Default: 1.

Entradas

azureSubscription - de conexão do Azure Resource Manager
Alias de entrada: ConnectedServiceName. string.

Especifique uma conexão de serviço do Azure Resource Manager configurada com a federação de identidade de carga de trabalho para usar do AzurePipelinesCredential em testes de integração. Para obter mais informações, consulte Usar o AzurePipelinesCredential em testes de integração.

Nota

Essa entrada só dá suporte a conexões de serviço do ARM configuradas para usar a federação de identidade de carga de trabalho.


testSelector - Selecionar testes usando
string. Necessário. Valores permitidos: testAssemblies (assemblies de teste), testPlan (plano de teste), testRun (execução de teste). Valor padrão: testAssemblies.

  • Assembly de teste: Especifica um ou mais assemblies de teste que contêm seus testes. Opcionalmente, você pode especificar um critério de filtro para selecionar apenas testes específicos.
  • Plano de teste: executa testes do seu plano de teste que têm um método de teste automatizado associado a ele. Para saber mais sobre como associar testes a um item de trabalho de caso de teste, consulte Associar testes automatizados a casos de teste.
  • Execução de teste: Use essa opção quando estiver configurando um ambiente para executar testes de planos de teste. Essa opção não deve ser usada ao executar testes em um pipeline de CI/CD (integração contínua/implantação contínua).

testAssemblyVer2 - arquivos de teste
string. Necessário quando testSelector = testAssemblies. Valor padrão: **\bin\**\*test.dll\n**\bin\**\*tests.dll.

Executa testes dos arquivos especificados. Testes ordenados e webtests podem ser executados especificando os arquivos .orderedtest e .webtest respectivamente. Para executar .webtest, o Visual Studio 2017 Atualização 4 ou superior é necessário. Os caminhos de arquivo são relativos à pasta de pesquisa. Essa entrada dá suporte a várias linhas de padrões de minimatch .

# Example
- task: VSTest@3
  inputs:
    testSelector: 'testAssemblies'
    testAssemblyVer2: |
      **\*test*.dll
      !**\*TestAdapter.dll
      !**\obj\**

testPlan - plano de teste
string. Necessário quando testSelector = testPlan.

Especifica um plano de teste que contém conjuntos de testes com casos de teste automatizados.


do conjunto de testes do
string. Necessário quando testSelector = testPlan.

Especifica um ou mais conjuntos de testes que contêm casos de teste automatizados. Os itens de trabalho de caso de teste devem ser associados a um método de teste automatizado .


de configuração de teste de
string. Necessário quando testSelector = testPlan.

Especifica a configuração de teste.


tcmTestRun - de Execução de Teste
string. Opcional. Use quando testSelector = testRun. Valor padrão: $(test.RunId).

Especifica a seleção baseada em execução de teste usada ao disparar execuções de teste automatizadas de planos de teste. Essa opção não pode ser usada para executar testes no pipeline de CI/CD.


da pasta pesquisa
string. Necessário. Valor padrão: $(System.DefaultWorkingDirectory).

Especifica a pasta para pesquisar os assemblies de teste.


da pasta resultados do teste
string. Valor padrão: $(Agent.TempDirectory)\TestResults.

Especifica a pasta para armazenar os resultados do teste. Ao usar o diretório padrão, ele é limpo no final de uma execução de pipeline. O diretório de resultados sempre será limpo no início da tarefa vstest antes que os testes sejam executados. O caminho da pasta relativa, se fornecido, será considerado relativo a $(Agent.TempDirectory).


critérios de filtro de teste testFiltercriteria -
string. Opcional. Use quando testSelector = testAssemblies.

Especifica critérios adicionais para filtrar testes de assemblies de teste. Por exemplo: Priority=1|Name=MyTestMethod. Saiba mais sobre opções de linha de comando.


runOnlyImpactedTests - Executar somente testes afetados
boolean. Opcional. Use quando testSelector = testAssemblies. Valor padrão: False.

Especifica e executa automaticamente os testes necessários para validar a alteração de código. Saiba mais sobre como usar de Análise de Impacto de Teste.


runAllTestsAfterXBuilds - Número de builds após o qual todos os testes devem ser executados
string. Opcional. Use quando testSelector = testAssemblies && runOnlyImpactedTests = true. Valor padrão: 50.

Especifica o número de builds a serem executados antes que todos os testes sejam executados automaticamente. A Análise de Impacto de Teste armazena o mapeamento entre casos de teste e código-fonte. É recomendável regenerar o mapeamento executando todos os testes regularmente.


uiTests - Combinação de testes contém testes de interface do usuário
boolean. Valor padrão: false.

Para executar testes de interface do usuário, verifique se o agente está definido para ser executado em modo interativo com Autologon habilitado. A configuração de um agente para ser executado interativamente deve ser feita antes de enfileirar o build/lançamento. Marcar essa caixa não configura o agente no modo interativo automaticamente. Essa opção serve como um lembrete para configurar o agente adequadamente para evitar falhas. Os agentes hospedados do Windows dos pools do VS 2015 e 2017 podem ser usados para executar testes de interface do usuário.


vstestLocationMethod - Selecionar a plataforma de teste usando
string. Valores permitidos: version, location (local específico). Valor padrão: version.

Especifica qual plataforma de teste usar.


de versão da plataforma de teste do
string. Opcional. Use quando vstestLocationMethod = version. Valores permitidos: latest, 17.0 (Visual Studio 2022), 16.0 (Visual Studio 2019), 15.0 (Visual Studio 2017), 14.0 (Visual Studio 2015), toolsInstaller (Instalado pelo Instalador de Ferramentas). Valor padrão: latest.

Especifica a versão do Teste do Visual Studio a ser usada. Se mais recente for especificado, essa entrada escolherá a versão mais recente (na lista de valores permitidos) instalada. Para executar testes sem precisar do Visual Studio no agente, use a opção Instalado pelo instalador de ferramentas. Certifique-se de incluir a tarefa Instalador da Plataforma de Teste do Visual Studio para adquirir a plataforma de teste do NuGet.


vstestLocation - caminho para vstest.console.exe
string. Opcional. Use quando vstestLocationMethod = location.

Especifica o caminho para o VSTest.


de arquivo de Configurações de
string.

Especifica o caminho para um arquivo runsettings ou testsettings a ser usado com os testes. Para Visual Studio 15.7 e superior, use runsettings para todos os tipos de teste. Saiba mais sobre converter um arquivo .testsettings em um arquivo .runsettings.


overrideTestrunParameters - Substituir parâmetros de execução de teste
string.

Substitui os parâmetros definidos na seção TestRunParameters de um arquivo runsettings ou na seção Properties de um arquivo testsettings. Por exemplo: -key1 value1 -key2 value2. Observação: Propriedades especificadas em um arquivo testsettings podem ser acessadas por meio do TestContext usando o Visual Studio 2017 (atualização 4 ou superior).


pathtoCustomTestAdapters - Caminho para adaptadores de teste personalizados
string.

Especifica o caminho do diretório para adaptadores de teste personalizados. Os adaptadores que residem na mesma pasta que os assemblies de teste são descobertos automaticamente.


runInParallel - executar testes em paralelo em computadores de vários núcleos
boolean. Valor padrão: False.

Se definido como true, os testes serão executados em paralelo e aproveitarão os núcleos disponíveis do computador. Isso substituirá o MaxCpuCount se especificado em seu arquivo de runsettings. Saiba mais sobre como os testes de são executados em paralelo.


runTestsInIsolation - executar testes em de isolamento
boolean. Valor padrão: False.

Executa os testes em um processo isolado. Isso provavelmente leva a menos erros no processo de teste de vstest.console.exe, mas os testes podem ser mais lentos. Atualmente, essa opção não pode ser usada ao executar com a configuração de trabalho de vários agentes.


cobertura de código codeCoverageEnabled - habilitada
boolean. Valor padrão: False.

Coleta informações de cobertura de código da execução de teste.


otherConsoleOptions - Outras opções de console
string.

Outras opções de console que podem ser passadas para vstest.console.exe.

Essas opções não têm suporte e serão ignoradas ao executar testes usando a configuração de paralela de vários agentes de um trabalho de agente, ao executar testes usando o plano de teste ou a opção de execução de teste ou quando uma opção de envio em lote personalizada for selecionada. Em vez disso, as opções podem ser especificadas usando um arquivo de configurações.


testes do Lote distributionBatchType -
string. Valores permitidos: basedOnTestCases (com base no número de testes e agentes), basedOnExecutionTime (com base no tempo de execução anterior dos testes), basedOnAssembly (com base em assemblies de teste). Valor padrão: basedOnTestCases.

Um lote é um grupo de testes. Um lote de testes executa seus testes ao mesmo tempo e os resultados são publicados para o lote. Se o trabalho em que a tarefa é executada estiver definido para usar vários agentes, cada agente pegará todos os lotes disponíveis de testes para serem executados em paralelo. Um lote pode ser executado:

com base no número de testes e agentes. Envio em lote simples com base no número de testes e agentes que participam da execução do teste.

com base no tempo de execução anterior dos testes. Esse envio em lote considera o tempo de execução anterior para criar lotes de testes em que cada lote tem tempo de execução aproximadamente igual.

com base em assemblies de teste. Os testes de um assembly são agrupados em lote.


batchingBasedOnAgentsOption - opções do Lote
string. Opcional. Use quando distributionBatchType = basedOnTestCases. Valores permitidos: autoBatchSize (determinar automaticamente o tamanho do lote), customBatchSize (especificar um tamanho de lote). Valor padrão: autoBatchSize.

Especifica o envio em lote simples com base no número de testes e agentes que participam da execução do teste. Quando o tamanho do lote é determinado automaticamente, cada lote contém (total number of tests / number of agents) testes. Se um tamanho de lote for especificado, cada lote conterá o número especificado de testes.


customBatchSizeValue - Número de testes por em lote
string. Necessário quando distributionBatchType = basedOnTestCases && batchingBasedOnAgentsOption = customBatchSize. Valor padrão: 10.

Especifica o tamanho do lote.


batchingBasedOnExecutionTimeOption - opções do Lote
string. Opcional. Use quando distributionBatchType = basedOnExecutionTime. Valores permitidos: autoBatchSize (determinar automaticamente o tempo de lote), customTimeBatchSize (especificar o tempo de execução por lote). Valor padrão: autoBatchSize.

Esse lote considera tempos de execução anteriores para criar lotes de testes em que cada lote tem tempo de execução aproximadamente igual. Testes de execução rápida serão agrupados em lote, enquanto testes de execução mais longa podem pertencer a um lote separado. Quando essa opção é usada com a configuração de trabalho de vários agentes, o tempo total de teste é reduzido para um mínimo.


customRunTimePerBatchValue - tempo de execução (s) por lote
string. Necessário quando distributionBatchType = basedOnExecutionTime && batchingBasedOnExecutionTimeOption = customTimeBatchSize. Valor padrão: 60.

Especifica o tempo de execução (em segundos) por lote.


dontDistribute - Replicar testes em vez de distribuir quando vários agentes são usados no trabalho
boolean. Valor padrão: False.

Escolher essa opção não distribuirá testes entre agentes quando a tarefa estiver em execução em um trabalho de vários agentes. Cada um dos testes selecionados será repetido em cada agente. Essa opção não é aplicável quando o trabalho do agente é configurado para ser executado sem paralelismo ou com a opção de várias configurações.


testRunTitle - Test run title
string.

Especifica um nome para a execução do teste.


platform - plataforma build
string.

Especifica a plataforma de build na qual os testes devem ser relatados. Se você definiu uma variável para a plataforma em sua tarefa de build, use-a com essa entrada.


configuration - configuração de build
string.

Especifica a configuração de build na qual os testes devem ser relatados. Se você definiu uma variável para a configuração em sua tarefa de build, use-a com essa entrada.


publishRunAttachments - Carregar anexos de teste
boolean. Valor padrão: true.

Aceita ou não a publicação de anexos de nível de execução.


failOnMinTestsNotRun - Falhar na tarefa se um número mínimo de testes não for executado.
boolean. Valor padrão: False.

Falha na tarefa se um número mínimo de testes não for executado. Isso poderá ser útil se qualquer alteração nas entradas de tarefa ou nas dependências do adaptador de teste subjacente levar a apenas um subconjunto dos testes desejados a serem encontrados.


minimumExpectedTests - # mínimo de testes
string. Opcional. Use quando failOnMinTestsNotRun = true. Valor padrão: 1.

Especifica o número mínimo de testes a serem executados para que a tarefa seja bem-sucedida. O total de testes executados é calculado como a soma dos testes aprovados, com falha e anulados.


diagnosticsEnabled - Coletar diagnósticos avançados em caso de falhas catastróficas
boolean. Valor padrão: false.

Coleta dados de diagnóstico para solucionar falhas catastróficas, como uma falha de teste. Quando essa opção é verificada, um arquivo XML de sequência é gerado e anexado à execução de teste. O arquivo de sequência contém informações sobre a sequência na qual os testes foram executados, para que um teste potencial de culpado possa ser identificado.


collectDumpOn - Coletar despejo de processo e anexar ao relatório de execução de teste
string. Opcional. Use quando diagnosticsEnabled = true. Valores permitidos: onAbortOnly (somente on abort), always, never. Valor padrão: onAbortOnly.

Coleta um mini despejo que pode ser usado para análise posterior.

  • onAbortOnly - um mini despejo será coletado somente quando a execução do teste for anulada.
  • Always – um mini dump sempre será coletado, independentemente de a execução do teste ser concluída ou não.
  • Nunca - um mini despejo não será coletado independentemente de a execução do teste ser concluída ou não.

rerunFailedTests - executar novamente testes com falha
boolean. Valor padrão: False.

Executa novamente todos os testes com falha até que eles passem ou até que o número máximo de tentativas seja atingido.


rerunType - Não execute novamente se falhas de teste excederem o limite especificado
string. Opcional. Use quando rerunFailedTests = true. Valores permitidos: basedOnTestFailurePercentage ( falha%), basedOnTestFailureCount (# de testes com falha). Valor padrão: basedOnTestFailurePercentage.

Evita executar novamente testes quando a taxa de falha ultrapassa o limite especificado. Isso é aplicável se problemas de ambiente levarem a falhas maciças. Você pode especificar o percentual de falhas ou o número de testes com falha como um limite.


rerunFailedThreshold - % falha
string. Opcional. Use quando rerunFailedTests = true && rerunType = basedOnTestFailurePercentage. Valor padrão: 30.

Evita executar novamente testes quando o percentual de casos de teste com falha ultrapassa o limite especificado. Isso é aplicável se problemas de ambiente levarem a falhas maciças.


rerunFailedTestCasesMaxLimit - # de testes com falha
string. Opcional. Use quando rerunFailedTests = true && rerunType = basedOnTestFailureCount. Valor padrão: 5.

Evita executar novamente testes quando o número de casos de teste com falha ultrapassa o limite especificado. Isso é aplicável se problemas de ambiente levarem a falhas maciças.


rerunMaxAttempts - # máximo de tentativas
string. Opcional. Use quando rerunFailedTests = true. Valor padrão: 3.

Especifica o número máximo de vezes que um teste com falha deve ser repetido. Se um teste for aprovado antes que o número máximo de tentativas seja atingido, ele não será executado novamente.


Opções de controle de tarefa

Todas as tarefas têm opções de controle além de suas entradas de tarefa. Para obter mais informações, consulte as opções de Controle de e as propriedades comuns da tarefa.

Variáveis de saída

Nenhum.

Observações

Use essa tarefa para executar testes funcionais e de unidade (Selenium, Appium, teste de interface do usuário codificado e muito mais) usando o executor de Teste do Visual Studio. Juntamente com testes baseados em MSTest, estruturas de teste que têm um adaptador de teste do Visual Studio também podem ser executadas, como xUnit, NUnit ou Chutzpah.

Testa se a estrutura do .NET Core de destino pode ser executada especificando o valor apropriado da estrutura de destino no arquivo .runsettings .

Os testes podem ser distribuídos em vários agentes usando a versão 2 desta tarefa. Para obter mais informações, consulte Executar testes em paralelo usando a tarefa teste do Visual Studio.

Verificar pré-requisitos

Se você estiver usando um agente auto-hospedado do Windows, esse pré-requisito deverá ser instalado:

Demandas

O agente deve ter o seguinte recurso:

vstest

A demanda vstest pode ser atendida de duas maneiras:

  1. O Visual Studio está instalado no computador do agente.
  2. Usando a tarefa Instalador da Plataforma de Teste do Visual Studio na definição do pipeline.

Como posso executar testes que usam TestCase como fonte de dados?

Para executar testes automatizados que usam TestCase como fonte de dados, o seguinte é necessário:

  1. Você deve ter o Visual Studio 2017.6 ou superior no computador do agente. A tarefa Instalador da Plataforma de Teste do Visual Studio não pode ser usada para executar testes que usam TestCase como fonte de dados.
  2. Crie um pat autorizado para o escopo "Itens de Trabalho (completo)".
  3. Adicione uma variável de build ou de versão segura chamada Test.TestCaseAccessToken com o valor definido para o PAT criado na etapa anterior.

Estou tendo problemas ao executar testes XUnit e NUnit controlados por dados com algumas das opções de tarefa. Há limitações conhecidas?

Os testes controlados por dados que usam estruturas de teste xUnit e NUnit têm algumas limitações conhecidas e não podem ser usados com as seguintes opções de tarefa:

  1. Executar novamente testes com falha.
  2. Distribuição de testes em vários agentes e opções de envio em lote.
  3. Análise de impacto de teste.

As limitações acima se devem à forma como os adaptadores dessas estruturas de teste descobrem e relatam testes controlados por dados.

A tarefa VSTest dá suporte à execução de testes direcionados a várias estruturas de destino por vez?

Sim, a partir da versão 17.3 o VSTest dá suporte à execução de testes direcionados a várias estruturas de destino de cada vez. Antes disso, isso não era possível devido a uma limitação do lado da plataforma VSTest .

Se você quiser executar testes que pertencem a várias estruturas de destino, precisará instalar uma versão compatível do VSTest por meio de do Instalador da Plataforma de Teste do Visual Studio e definir vsTestVersion para toolsInstaller usá-la.

Ao publicar o resultado do teste, obter este erro: Falha ao publicar os resultados do teste: Prioridade Inválida especificada?

Esse erro ocorrerá se qualquer um dos métodos de teste tiver prioridade definida acima de 255, corrigir a prioridade do método de teste no código e executar os testes novamente. Você pode examinar o arquivo trx gerado para ver todos os testes com prioridade maior que 255.

Usar o AzurePipelinesCredential em testes de integração

As bibliotecas de Identidade do Azure para .NET, C++, Go, Java, JavaScript e Python oferecem suporte parade federação de identidade de carga de trabalho, portanto, o código executado das tarefas AzureCLI@2 e AzurePowerShell@5 pode se autenticar com a ID do Microsoft Entra (por exemplo, para acessar o Azure) usando a classe AzurePipelinesCredential.

Muitos clientes estão usando bibliotecas de clientes do SDK do Azure em testes de integração invocados de outras tarefas. As tarefas DotNetCoreCLI@2, Maven@4 e VSTest@3 podem acessar recursos do Azure usando a classe AzurePipelinesCredential.

Você pode definir a propriedade connectedService para uma conexão de serviço do Azure configurada com a federação de identidade de carga de trabalho. O AzurePipelinesCredential requer que SYSTEM_ACCESSTOKEN seja definido.

O exemplo a seguir mostra a entrada connectedService na tarefa DotNetCoreCLI@2. VSTest@3 e Maven@4 uso é semelhante.

- task: DotNetCoreCLI@2
  inputs:
    command: 'run'
    connectedService: <Azure service connection configured with workload identity federation>
  env:
    SYSTEM_ACCESSTOKEN: $(System.AccessToken)

Para obter mais informações sobre AzurePipelinesCredential, consulte esta Melhorar a postura de segurança nas conexões de serviço do Azure com o AzurePipelinesCredential.

Requisitos

Requisito Descrição
Tipos de pipeline YAML, build clássico, versão clássica
Execuções em Agent, DeploymentGroup
de demandas Os agentes auto-hospedados devem ter recursos que correspondam às seguintes demandas de para executar trabalhos que usam esta tarefa: vstest
recursos Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho.
restrições de comando Qualquer
variáveis settable Qualquer
Versão do agente 2.144.0 ou superior
Categoria de tarefa Teste