Impacto de teste para repositórios TFVC parcialmente mapeados nos Serviços de DevOps do TFS/Azure
Serviços de DevOps do Azure | Azure DevOps Server 2022 - Azure DevOps Server 2019
A Análise de Impacto de Teste (TIA) tem sido parte da tarefa VSTest a partir da versão 2 da tarefa. Esse recurso ajuda a acelerar o ciclo de DevOps, ajudando você a executar apenas testes relevantes para uma compilação. Efetivamente, você acaba executando testes que são afetados pelas alterações recebidas e não por todo o conjunto de testes. Para obter mais informações sobre a Análise de Impacto de Teste, consulte Acelerar o teste usando a Análise de Impacto de Teste (TIA).
Além de oferecer suporte ao GitHub e ao Git no Azure DevOps, o TIA também oferece suporte ao TFVC. Este artigo descreve uma limitação conhecida sobre TIA em pipelines de compilação/liberação com base no TFVC e uma solução alternativa para superar essa limitação.
Problema com repositórios TFVC parcialmente mapeados
A maneira como o TIA funciona é coletando dados sobre os arquivos que um método de teste toca durante sua primeira execução, também chamada de execução de linha de base. O coletor que coleta esses dados tem visibilidade apenas do repositório alistado na máquina do agente. Com pipelines baseados em TFVC, você tem uma opção para recrutar repositórios parciais. Por exemplo, considere um repositório que tenha a seguinte estrutura.
Agora, em seu pipeline de compilação/lançamento, você verá o bloco Obter códigos-fonte em Processo , conforme mostrado no exemplo a seguir.
Selecione Obter fontes e você verá opções na folha direita para mapear parcialmente seu repositório.
Se você inscrever o repositório inteiro, como mostrado no exemplo anterior, o TIA continuará a funcionar bem, mas se você se inscrever parcialmente, como mostrado no exemplo a seguir, o TIA não conseguirá localizar os testes afetados.
Quando um repositório TFVC é parcialmente alistado, o TIA não consegue encontrar os testes afetados porque o coletor é capaz de coletar alterações apenas para o repositório parcialmente alistado no agente e não tem visibilidade de todo o caminho. Quando uma alteração de código flui do servidor, ela fornece o caminho inteiro e a tentativa de correspondência com o caminho mapeado falha.
Solução
Para contornar esse problema, você pode mapear seu repositório parcial para a estrutura de código completa no servidor, para que o caminho completo dos arquivos em seu alistamento local corresponda ao caminho completo do servidor. Para fazer isso, você pode especificar um caminho Local que corresponda ao caminho do servidor, conforme mostrado no exemplo a seguir.
Isso garante que o caminho do servidor corresponda ao caminho coletado pelo coletor e que os testes afetados sejam listados corretamente.