André Alves de Lima

Talking about Software Development and more…

Dica rápida: Filtrando os testes que serão executados na Integração Contínua do TFS

Uma das etapas da integração contínua é a execução dos testes unitários para validar cada check-in feito no repositório. Se você ainda não trabalha com essa prática, sugiro estudá-la e integrá-la ao seu processo de desenvolvimento (a segurança que essa metodologia te dá não tem preço – se implementada do jeito certo, você fica sabendo em poucos minutos se você quebrou alguma parte do sistema).

Até o Team Foundation Server 2010 (e Visual Studio 2010) conseguíamos filtrar os testes a serem executados na integração contínua utilizando “test lists“. Na versão 2012 do Team Foundation Server e Visual Studio a funcionalidade de “test lists” foi marcada como incompatível (mas ainda funcionava). Porém, ao migrarmos para a versão 2013 tivemos a surpresa que o suporte às “test lists” foi completamente removido. E agora, como fazer para filtrar os testes que serão executados na integração contínua do Team Foundation Server 2013?

A atualização para a versão 2013 do Team Foundation Server foi um pouco tensa devido a essa remoção de funcionalidades. Outra funcionalidade que foi removida e que eu já comentei aqui no blog foram os “private accessors. Veja o trecho da documentação que fala que as “test lists” não são mais suportadas:

You will no longer be able to create new test lists (.vsmdi files) or run test lists from Visual Studio.

A sugestão apresentada pela documentação é utilizarmos “test categories“. E isso é o que vamos ver nessa dica rápida.

Basicamente temos que inventar um nome de uma categoria (por exemplo “IgnorarNaIntegracaoContinua“) e decorar os testes unitários que queremos ignorar utilizando essa categoria (com o atributo TestCategory). Exemplo:

        [TestMethod, TestCategory("IgnorarNaIntegracaoContinua")]
        public void TesteQueVoceQuerIgnorarNaIntegracaoContinua()
        {
        }

Faça o mesmo com todos os testes que você quiser ignorar na integração contínua. Feito isso, vá até a definição da build e abra a seção “Process“. Dentro do item “Test“, expanda o item “Automated tests” e “Test source“. Lá você vai encontrar o item chamado “Test case filter“. É ali que temos que colocar a expressão dizendo que queremos ignorar aquela categoria de testes na integração contínua:

Como você pode perceber, a expressão do filtro para os testes é muito simples:

TestCategory != IgnorarNaIntegracaoContinua

Esse foi só um exemplo muito simples de “test case filter“. É possível utilizarmos outros operadores e outras informações para filtrarmos os testes a serem executados na integração contínua. Confira este outro artigo para conferir uma lista completa do que pode ser utilizado nos filtros da integração contínua. E sugiro ainda que você dê uma olhada neste outro artigo para conferir como utilizar as categorias de testes na ferramenta de execução de testes do Visual Studio. O “test case filter” é considerado não somente em builds que estejam configurados como integração contínua, mas também builds manuais, rolling builds, gated check-in e builds por agendamento.

E por hoje é só. Espero que essa dica rápida ajude outras pessoas que tiverem a necessidade de filtrar testes na integração contínua do TFS.

Até a próxima!

André Lima

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *