Integração Contínua - NUnit

Olá a todos! :D 

 Neste último artigo estarei mostrando como realizar a configuração do seu projeto de testes unitários no servidor CruiseControl.NET. Para ver os outros artigos da série clique aqui.
Os testes unitários são testes criados por desenvolvedores, que servem para testar a menor parte do sistema, ou seja, a entrada de uma informação e verificação do resultado. No momento não estarei abordando este assunto aqui, com uma simples pesquisa na Internet Google você achará mais a respeito. Existe uma prática chamada TDD (Test Driven Development) e muito utilizada na métodologia Ágil, ela diz que os testes tem que serem feitos antes do código.

Mas vamos ao que interessa! No último artigo tinhamos criado a configuração do NAnt e colodado a chamada dele no servidor CruiseControl.NET. O primeiro passo que temos que fazer é realizar o build no nosso projeto, com isso vamos pegar a  configuração no NAnt que fizemos anteriormente e adicionar as Targets necessárias para a a compilação do nosso projeto de teste unitário.


A partir desta configuração acima, vamos incluir o build do projeto de testes e, a mesma ficará conforme abaixo. Repare que é a compilação normal como um projeto qualquer.



Bom, agora que estamos com o projeto compilando, é só chamar a Target no CruiseControl.NET. Porém não é só isso, no momento só compilamos o projeto, agora teremos que rodar os testes unitários no servidor, pois caso algum teste falhe automaticamente todos os envolvidos serão notificados pelo servidor de integração contínua. Este é um dos pontos chaves de fazer uma integração contínua. Primeiramente vamos criar uma outro arquvo XML chamado MeusTestesUnitarios.nunit, nele iremos informar quais serão as DLLs do projeto que estão com testes unitários. Veja como ficará a configuração:



Lembrando que antes de rodar os teste unitários, é necessário que todas as DLLs que o teste unitário utiliza deve ser copiada para o mesmo diretório onde se encontra a DLL do teste unitário.

Voltando ao NAnt, vamos criar uma nova Target para a chamada do teste unitário, mas antes verifique se o servidor está instalado o NUnit.



Repare que esta Target é um pouco diferente, na linha 33 estamos executando o NUnit, com a tag do NAnt . Ela tem como os parâmetros workdir, que é o diretório base, neste caso coloquei o "." que indica que é o diretório atual de onde se encontra o este arquivo de build do projeto NAnt; outro parâmetro é o program, ele indica o caminho completo do programa mais o executável, neste caso o nunit-conseole.exe. A Tag possui como filho a tag , responsável por passar argumentos para o programa definido no . Como pode ser visto, na primeira passa-se a DLL do projeto de testes e, a segunda é o relatório de resultados dos testes unitários. Este relatório será incluso no servidor de integração contínua CruiseControl.NET

Agora é só incluir o XML do relatório do NUnit ao CruiseControl.NET, como se pode ver abaixo. Uma coisa importante e que poucos falam, não sei se é bug do servidor, mas para exibir o relatório o mesmo tem que ser o primeiro a ser  informado nas configurações, antes das seguintes Tags: , , e




Bem, por hoje é só. Espero que tenha gostado desta série sobre Integração Contínua. Mas antes de terminar quero deixar mais uma dica, se você deseja melhorar a sua integração, de uma olhada na ferramenta NCover, ela lhe informa o que falta realizar testes unitários do seu código, vale muito a pena.

Abraços e até a próxima! ;D