<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>zezologs&#187; Testes Unitários</title>
	<atom:link href="http://www.zezologs.org/blog/tag/testes-unitarios/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zezologs.org/blog</link>
	<description>teste de software, prevenção de erros, automação</description>
	<lastBuildDate>Thu, 08 Sep 2011 12:49:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Template de Relatório de Testes do VS</title>
		<link>http://www.zezologs.org/blog/template-de-relatrio-de-testes-do-vs/</link>
		<comments>http://www.zezologs.org/blog/template-de-relatrio-de-testes-do-vs/#comments</comments>
		<pubDate>Mon, 11 Aug 2008 14:48:40 +0000</pubDate>
		<dc:creator>eudescosta</dc:creator>
				<category><![CDATA[Testes Unitários]]></category>

		<guid isPermaLink="false">http://www.zezologs.org/blog/template-de-relatrio-de-testes-do-vs/</guid>
		<description><![CDATA[<p>Recebi emails de alguns leitores, pedindo para que disponibilizasse o template que utilizo para gerar os relatórios apartir do .trx como explicado neste <a href="http://www.zezologs.org/blog/gerando-relatrio-dos-testes-unitrios-a-partir-do-trx/">post</a>.</p>
<p>Bem, estou disponibilizando o template em excel para quem tiver interesse, para aqueles que chegaram aqui de paraquedas, este template deve ser utilizado por quem executa testes no Visual Studio e precisa enviar relatórios diários/semanais/mensais/anuais&#8230; para os interessados nos resultados dos testes.</p>
<p>O template é bastante simples e foi confeccionado no próprio excel, usando o código do mapa XML do .trx gerado após a execução dos testes no Visual Studio (o .trx geralmente fica na pasta &#8216;Test Results&#8217;).</p>
<p></p>
<p>Para utilizá-lo basta importar o .trx via <strong>Dados</strong> &gt; <strong>XML</strong> &gt; <strong>Importar</strong> e pronto.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/08/image.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/08/image-thumb.png" alt="image" width="240" height="99" /></a></p>
<p>A imagem acima ilustra como ficará os resultados após esta importação, depois basta inserir isto em um email e enviar para aqueles interessados no resultado.</p>
<p>É isso, espero que este .xls ajude aqueles que tinham um grande trabalho para gerar um relatório apresentável destes .trx.</p>
<p>O template pode ser baixado <a href="http://www.zezologs.org/download/2">aqui</a>.</p>
<hr /><h2>leia mais...</h2><ul><li><a href="http://www.zezologs.org/blog/gerando-relatrio-dos-testes-unitrios-a-partir-do-trx/" rel="bookmark" title="Permanent Link: Gerando Relat&oacute;rio dos Testes Unit&aacute;rios a partir do .trx">Gerando Relat&oacute;rio dos Testes Unit&aacute;rios a partir do .trx</a></li><li><a href="http://www.zezologs.org/blog/iii-ebts-aberta-submisses-de-artigos/" rel="bookmark" title="Permanent Link: III EBTS Aberta Submiss&otilde;es de Artigos">III EBTS Aberta Submiss&otilde;es de Artigos</a></li><li><a href="http://www.zezologs.org/blog/importando-cts-do-excel-para-o-testlink/" rel="bookmark" title="Permanent Link: Importando CT´s do Excel para o Testlink">Importando CT´s do Excel para o Testlink</a></li><li><a href="http://www.zezologs.org/blog/testlink-exportao-de-casos-de-teste/" rel="bookmark" title="Permanent Link: Testlink: Exporta&ccedil;&atilde;o de Casos de Teste">Testlink: Exporta&ccedil;&atilde;o de Casos de Teste</a></li><li><a href="http://www.zezologs.org/blog/estimando-esforo-de-automao/" rel="bookmark" title="Permanent Link: Estimando Esforço de Automação">Estimando Esforço de Automação</a></li></ul><br>
<div align="center"><font face="Tahoma"><font color="#999999" face="Tahoma">Copyright &copy; 
    2007-2008 zezologs.org <strong>|</strong> 
    Todos os direitos reservados <strong>|</strong>
    <font color="#637c32"><strong></strong></font></font><font face="Tahoma"><a href="http://www.zezologs.org/blog/mobile/">Acessibidade</a> 
    <font color="#637c32"><strong>|</strong></font></font> <font face="Tahoma"><a href="http://www.wordpress.com">WordPress 
    </a> </font> <p>Recebi emails de alguns leitores, pedindo para que disponibilizasse o template que utilizo para gerar os relatórios apartir do .trx como explicado neste <a href="http://www.zezologs.org/blog/gerando-relatrio-dos-testes-unitrios-a-partir-do-trx/">post</a>.</p>
<p>Bem, estou disponibilizando o template em excel para quem tiver interesse, para aqueles que chegaram aqui de paraquedas, este template deve ser utilizado por quem executa testes no Visual Studio e precisa enviar relatórios diários/semanais/mensais/anuais&#8230; para os interessados nos resultados dos testes.</p>
<p>O template é bastante simples e foi confeccionado no próprio excel, usando o código do mapa XML do .trx gerado após a execução dos testes no Visual Studio (o .trx geralmente fica na pasta &#8216;Test Results&#8217;).</p>
<p></p>
<p>Para utilizá-lo basta importar o .trx via <strong>Dados</strong> &gt; <strong>XML</strong> &gt; <strong>Importar</strong> e pronto.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/08/image.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/08/image-thumb.png" alt="image" width="240" height="99" /></a></p>
<p>A imagem acima ilustra como ficará os resultados após esta importação, depois basta inserir isto em um email e enviar para aqueles interessados no resultado.</p>
<p>É isso, espero que este .xls ajude aqueles que tinham um grande trabalho para gerar um relatório apresentável destes .trx.</p>
<p>O template pode ser baixado <a href="http://www.zezologs.org/download/2">aqui</a>.</p>
<hr /><h2>leia mais...</h2><ul><li><a href="http://www.zezologs.org/blog/gerando-relatrio-dos-testes-unitrios-a-partir-do-trx/" rel="bookmark" title="Permanent Link: Gerando Relat&oacute;rio dos Testes Unit&aacute;rios a partir do .trx">Gerando Relat&oacute;rio dos Testes Unit&aacute;rios a partir do .trx</a></li><li><a href="http://www.zezologs.org/blog/iii-ebts-aberta-submisses-de-artigos/" rel="bookmark" title="Permanent Link: III EBTS Aberta Submiss&otilde;es de Artigos">III EBTS Aberta Submiss&otilde;es de Artigos</a></li><li><a href="http://www.zezologs.org/blog/importando-cts-do-excel-para-o-testlink/" rel="bookmark" title="Permanent Link: Importando CT´s do Excel para o Testlink">Importando CT´s do Excel para o Testlink</a></li><li><a href="http://www.zezologs.org/blog/testlink-exportao-de-casos-de-teste/" rel="bookmark" title="Permanent Link: Testlink: Exporta&ccedil;&atilde;o de Casos de Teste">Testlink: Exporta&ccedil;&atilde;o de Casos de Teste</a></li><li><a href="http://www.zezologs.org/blog/estimando-esforo-de-automao/" rel="bookmark" title="Permanent Link: Estimando Esforço de Automação">Estimando Esforço de Automação</a></li></ul><br>
<div align="center"><font face="Tahoma"><font color="#999999" face="Tahoma">Copyright &copy; 
    2007-2008 zezologs.org <strong>|</strong> 
    Todos os direitos reservados <strong>|</strong>
    <font color="#637c32"><strong></strong></font></font><font face="Tahoma"><a href="http://www.zezologs.org/blog/mobile/">Acessibidade</a> 
    <font color="#637c32"><strong>|</strong></font></font> <font face="Tahoma"><a href="http://www.wordpress.com">WordPress 
    </a> </font> ]]></description>
		<wfw:commentRss>http://www.zezologs.org/blog/template-de-relatrio-de-testes-do-vs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cobertura de C&#243;digo com NCover</title>
		<link>http://www.zezologs.org/blog/cobertura-de-cdigo-com-ncover/</link>
		<comments>http://www.zezologs.org/blog/cobertura-de-cdigo-com-ncover/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 14:55:37 +0000</pubDate>
		<dc:creator>eudescosta</dc:creator>
				<category><![CDATA[Ferramentas de Teste]]></category>
		<category><![CDATA[Testes Unitários]]></category>
		<category><![CDATA[Cobertura de código]]></category>

		<guid isPermaLink="false">http://www.zezologs.org/blog/cobertura-de-cdigo-com-ncover/</guid>
		<description><![CDATA[<p>Pra quem trabalha com testes unitários, ja percebeu a importância de se ter uma ferramenta de análise de cobertura para ajudar na implementação dos testes, pra quem está começando a trabalhar com estes tipos de teste, o primeiro conselho, é procurar antes mesmo da implementação dos testes, uma ferramenta que lhe forneça informações de cobertura de código.</p>
<p>A razão pelo qual a utilização destas ferramentas é tão relevante, é que na maioria das vezes por mais conhecedor do código que você esta testando você seja, você sempre vai esquecer de passar por esse, ou aquele trecho de código, o que pode comprometer a eficiência dos seus testes.</p>
<p>Depois que passei a utilizar o NCover como uma solução para a análise de cobertura dos meus testes, passei a defender muito a tese de que um teste de caixa branca só pode ser confiável quando todos os seus testes passam pela análise de uma ferramenta dessas&#8230;salvo alguns casos em que os testes são direcionados propositalmente a um método especifico, testes em API´s&#8230;mas no geral (e por enquanto, até que me provem o contrário) acredito nessa tese.</p>
<p></p>
<p>Vejam o porque acredito e defendo essa tese, depois da rápida explicação na instalação do NCover.</p>
<p>Depois de <a href="http://www.ncover.com/">baixado</a>, instalado e devidamente registrado na sua máquina, acesse o NCoverExplorer, que inicialmente parecerá como a imagem abaixo.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image8.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb8.png" alt="image" width="240" height="171" /></a></p>
<p>Uma tela vazia, sem nada <img src='http://www.zezologs.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Vá em &#8216;Run NCover&#8230;&#8217; e realize as configurações de acordo com seu ambiente, o que o NCover precisar saber são basicamente 3 coisas</p>
<p>1) <strong>Qual comando ele vai executar pra rodar seus testes;</strong></p>
<p>2) <strong>Qual a pasta que encontram-se todas assemblies do seu código;</strong></p>
<p>3) <strong>Quais os argumentos que ao executar os testes devem ser passados.</strong></p>
<p>Pronto, estas 3 perguntas você precisar saber para preencher respectivamente nos campos que seguem na imagem</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image9.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb9.png" alt="image" width="240" height="171" /></a></p>
<p>Feito isso, basta rodar o NCover, se tudo der certo ele deverá rodar seus testes e exibirá a cobertura do código da seguinte forma.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image10.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb10.png" alt="image" width="240" height="171" /></a> <a href="http://www.zezologs.org/wp-content/uploads/2008/07/image11.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb11.png" alt="image" width="240" height="171" /></a></p>
<p>a imagem a seguir lhe mostra qual parte do código seu teste passou, note a cor azulada, que inidica que seu teste passou por ali.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image12.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb12.png" alt="image" width="240" height="171" /></a></p>
<p>E a mais importante</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image13.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb13.png" alt="image" width="240" height="171" /></a></p>
<p>Aqui você vê claramente que meu teste nao entou nesse laço <strong>if</strong> que encontra-se em vermelho, portanto, um teste deverá ser escrito para testar este <strong>if</strong>.</p>
<p>Viram como é importamte o uso de uma ferramenta de cobertura de código para testes caixa branca?</p>
<p>O <a href="http://www.ncover.com/">NCover</a> é pago, e para usa-lo em uma versão trial é preciso efetuar um cadastro e receber por email a chave de ativação.</p>
<p>Existe uma versão free no <a href="http://ncover.sourceforge.net/">NCover</a>, mas nesta versão é preciso instrumentar seu código, o que me deixou um pouco receioso.</p>
<br><hr /><h2>comentários</h2><li><a href="http://www.zezologs.org/blog/cobertura-de-cdigo-com-ncover/">quarta-feira, julho 23, 2008</a>, Jéssica Braun comentou: Show de bola seu blog. Parabéns! Vou virar visitante assídua!

Abraço.</li><br><li><a href="http://www.zezologs.org/blog/cobertura-de-cdigo-com-ncover/">quarta-feira, julho 23, 2008</a>, <a href='http://www.zezologs.org' rel='external nofollow' class='url'>eudescosta</a> comentou: obrigado :)</li><br><hr /><h2>leia mais...</h2><ul><li><a href="http://www.zezologs.org/blog/dica-mstest-noisolation-e-arquivos-de-configurao/" rel="bookmark" title="Permanent Link: Dica: MSTest (/noisolation e arquivos de configura&ccedil;&atilde;o)">Dica: MSTest (/noisolation e arquivos de configura&ccedil;&atilde;o)</a></li><li><a href="http://www.zezologs.org/blog/iii-ebts-aberta-submisses-de-artigos/" rel="bookmark" title="Permanent Link: III EBTS Aberta Submiss&otilde;es de Artigos">III EBTS Aberta Submiss&otilde;es de Artigos</a></li><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/" rel="bookmark" title="Permanent Link: Testes Unit&aacute;rios com componente do .NET">Testes Unit&aacute;rios com componente do .NET</a></li><li><a href="http://www.zezologs.org/blog/ii-ebts-encontro-brasileiro-de-teste-de-software/" rel="bookmark" title="Permanent Link: II EBTS (Encontro Brasileiro de Teste de Software)">II EBTS (Encontro Brasileiro de Teste de Software)</a></li><li><a href="http://www.zezologs.org/blog/estimando-esforo-de-automao/" rel="bookmark" title="Permanent Link: Estimando Esforço de Automação">Estimando Esforço de Automação</a></li></ul><br>
<div align="center"><font face="Tahoma"><font color="#999999" face="Tahoma">Copyright &copy; 
    2007-2008 zezologs.org <strong>|</strong> 
    Todos os direitos reservados <strong>|</strong>
    <font color="#637c32"><strong></strong></font></font><font face="Tahoma"><a href="http://www.zezologs.org/blog/mobile/">Acessibidade</a> 
    <font color="#637c32"><strong>|</strong></font></font> <font face="Tahoma"><a href="http://www.wordpress.com">WordPress 
    </a> </font> <p>Pra quem trabalha com testes unitários, ja percebeu a importância de se ter uma ferramenta de análise de cobertura para ajudar na implementação dos testes, pra quem está começando a trabalhar com estes tipos de teste, o primeiro conselho, é procurar antes mesmo da implementação dos testes, uma ferramenta que lhe forneça informações de cobertura de código.</p>
<p>A razão pelo qual a utilização destas ferramentas é tão relevante, é que na maioria das vezes por mais conhecedor do código que você esta testando você seja, você sempre vai esquecer de passar por esse, ou aquele trecho de código, o que pode comprometer a eficiência dos seus testes.</p>
<p>Depois que passei a utilizar o NCover como uma solução para a análise de cobertura dos meus testes, passei a defender muito a tese de que um teste de caixa branca só pode ser confiável quando todos os seus testes passam pela análise de uma ferramenta dessas&#8230;salvo alguns casos em que os testes são direcionados propositalmente a um método especifico, testes em API´s&#8230;mas no geral (e por enquanto, até que me provem o contrário) acredito nessa tese.</p>
<p></p>
<p>Vejam o porque acredito e defendo essa tese, depois da rápida explicação na instalação do NCover.</p>
<p>Depois de <a href="http://www.ncover.com/">baixado</a>, instalado e devidamente registrado na sua máquina, acesse o NCoverExplorer, que inicialmente parecerá como a imagem abaixo.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image8.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb8.png" alt="image" width="240" height="171" /></a></p>
<p>Uma tela vazia, sem nada <img src='http://www.zezologs.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Vá em &#8216;Run NCover&#8230;&#8217; e realize as configurações de acordo com seu ambiente, o que o NCover precisar saber são basicamente 3 coisas</p>
<p>1) <strong>Qual comando ele vai executar pra rodar seus testes;</strong></p>
<p>2) <strong>Qual a pasta que encontram-se todas assemblies do seu código;</strong></p>
<p>3) <strong>Quais os argumentos que ao executar os testes devem ser passados.</strong></p>
<p>Pronto, estas 3 perguntas você precisar saber para preencher respectivamente nos campos que seguem na imagem</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image9.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb9.png" alt="image" width="240" height="171" /></a></p>
<p>Feito isso, basta rodar o NCover, se tudo der certo ele deverá rodar seus testes e exibirá a cobertura do código da seguinte forma.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image10.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb10.png" alt="image" width="240" height="171" /></a> <a href="http://www.zezologs.org/wp-content/uploads/2008/07/image11.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb11.png" alt="image" width="240" height="171" /></a></p>
<p>a imagem a seguir lhe mostra qual parte do código seu teste passou, note a cor azulada, que inidica que seu teste passou por ali.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image12.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb12.png" alt="image" width="240" height="171" /></a></p>
<p>E a mais importante</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image13.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb13.png" alt="image" width="240" height="171" /></a></p>
<p>Aqui você vê claramente que meu teste nao entou nesse laço <strong>if</strong> que encontra-se em vermelho, portanto, um teste deverá ser escrito para testar este <strong>if</strong>.</p>
<p>Viram como é importamte o uso de uma ferramenta de cobertura de código para testes caixa branca?</p>
<p>O <a href="http://www.ncover.com/">NCover</a> é pago, e para usa-lo em uma versão trial é preciso efetuar um cadastro e receber por email a chave de ativação.</p>
<p>Existe uma versão free no <a href="http://ncover.sourceforge.net/">NCover</a>, mas nesta versão é preciso instrumentar seu código, o que me deixou um pouco receioso.</p>
<br><hr /><h2>comentários</h2><li><a href="http://www.zezologs.org/blog/cobertura-de-cdigo-com-ncover/">quarta-feira, julho 23, 2008</a>, Jéssica Braun comentou: Show de bola seu blog. Parabéns! Vou virar visitante assídua!

Abraço.</li><br><li><a href="http://www.zezologs.org/blog/cobertura-de-cdigo-com-ncover/">quarta-feira, julho 23, 2008</a>, <a href='http://www.zezologs.org' rel='external nofollow' class='url'>eudescosta</a> comentou: obrigado :)</li><br><hr /><h2>leia mais...</h2><ul><li><a href="http://www.zezologs.org/blog/dica-mstest-noisolation-e-arquivos-de-configurao/" rel="bookmark" title="Permanent Link: Dica: MSTest (/noisolation e arquivos de configura&ccedil;&atilde;o)">Dica: MSTest (/noisolation e arquivos de configura&ccedil;&atilde;o)</a></li><li><a href="http://www.zezologs.org/blog/iii-ebts-aberta-submisses-de-artigos/" rel="bookmark" title="Permanent Link: III EBTS Aberta Submiss&otilde;es de Artigos">III EBTS Aberta Submiss&otilde;es de Artigos</a></li><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/" rel="bookmark" title="Permanent Link: Testes Unit&aacute;rios com componente do .NET">Testes Unit&aacute;rios com componente do .NET</a></li><li><a href="http://www.zezologs.org/blog/ii-ebts-encontro-brasileiro-de-teste-de-software/" rel="bookmark" title="Permanent Link: II EBTS (Encontro Brasileiro de Teste de Software)">II EBTS (Encontro Brasileiro de Teste de Software)</a></li><li><a href="http://www.zezologs.org/blog/estimando-esforo-de-automao/" rel="bookmark" title="Permanent Link: Estimando Esforço de Automação">Estimando Esforço de Automação</a></li></ul><br>
<div align="center"><font face="Tahoma"><font color="#999999" face="Tahoma">Copyright &copy; 
    2007-2008 zezologs.org <strong>|</strong> 
    Todos os direitos reservados <strong>|</strong>
    <font color="#637c32"><strong></strong></font></font><font face="Tahoma"><a href="http://www.zezologs.org/blog/mobile/">Acessibidade</a> 
    <font color="#637c32"><strong>|</strong></font></font> <font face="Tahoma"><a href="http://www.wordpress.com">WordPress 
    </a> </font> ]]></description>
		<wfw:commentRss>http://www.zezologs.org/blog/cobertura-de-cdigo-com-ncover/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Gerando Relat&#243;rio dos Testes Unit&#225;rios a partir do .trx</title>
		<link>http://www.zezologs.org/blog/gerando-relatrio-dos-testes-unitrios-a-partir-do-trx/</link>
		<comments>http://www.zezologs.org/blog/gerando-relatrio-dos-testes-unitrios-a-partir-do-trx/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 16:59:26 +0000</pubDate>
		<dc:creator>eudescosta</dc:creator>
				<category><![CDATA[Testes Unitários]]></category>
		<category><![CDATA[Relatório de Execução]]></category>

		<guid isPermaLink="false">http://www.zezologs.org/blog/gerando-relatrio-dos-testes-unitrios-a-partir-do-trx/</guid>
		<description><![CDATA[<p>Para quem realiza testes unitários com o Visual Studio pôde perceber que ao final da execução dos testes, o VS não disponibiliza nehuma forma de relatório em uma forma amigável, para que essa que possa ser encaminhada para as pessoas interessadas nos resultados. O que VS apresenta é apenas o resumo na aba &#8216;Test Resuts&#8217;. O que irei apresentar a seguir, é uma forma de gerar um relatório para que este possa ser apresentado para aqueles que precisam saber dos resultados destes testes unitários.</p>
<p>Vamos lá, ao executar sua rodada de testes, o VS apresenta a seguinte tela <em>(por questões de confidencialidade, ofusquei os títulos dos testes</em>).</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb.png" alt="image" width="240" height="171" /></a></p>
<p></p>
<p>A saída destes testes consiste dos resultados armazenados em um arquivo de extensão .trx e as assemblies do projeto, localizadas na pasta &#8216;Test Results&#8217;.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image1.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb1.png" alt="image" width="240" height="171" /></a></p>
<p>Este arquivo .trx pode ser aberto e mapeado no excel como um xml, para isso basta abrir o arquivo no excel e ele fará a seguinte pergunta</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image2.png" rel="lightbox"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb2.png" border="0" alt="image" width="244" height="128" /></a></p>
<p>Escolha a &#8216;Usar o painel de tarefas Código-fonte XML&#8217; e ele deverá abrir um painel no lado direito com todo o mapeamento do XML, como exibido abaixo</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image3.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb3.png" alt="image" width="240" height="171" /></a></p>
<p>Agora basta selecionar na planilha, onde que você quer que a informação apareca, procure por sua referência no mapeamento do painel e clique duas vezes.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image4.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb4.png" alt="image" width="240" height="171" /></a></p>
<p>No caso acima, note que a célula ficou com ao borda azul. Depois de criar as referências das infromações que você deseja, basta salvar este arquivo, ele servirá de template.</p>
<p>Um exemplo de como está o meu, segue na imagem abaixo</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image5.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb5.png" alt="image" width="240" height="171" /></a></p>
<p>Feito isso, quando você rodar seus testes, basta abrir o .trx neste template que você acabou de criar. Faça isso indo em <em>Dados &gt; XML &gt; Importar</em>, que as informações que você referenciou no .trx, serão automaticamente preenchidas nas células do excel, com o exibido abaixo</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image6.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb6.png" alt="image" width="240" height="171" /></a> <a href="http://www.zezologs.org/wp-content/uploads/2008/07/image7.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb7.png" alt="image" width="240" height="170" /></a></p>
<p>Agora sim, temos um relatório bem apresentável, que podemos encaminhar para aqueles que precisam acompanhar os resultados destes testes.</p>
<br><hr /><h2>comentários</h2><li><a href="http://www.zezologs.org/blog/gerando-relatrio-dos-testes-unitrios-a-partir-do-trx/">segunda-feira, agosto 11, 2008</a>, <a href='http://www.zezologs.org/blog/template-de-relatrio-de-testes-do-vs/' rel='external nofollow' class='url'>Template de Relat&oacute;rio de Testes do VS | ...zezologs</a> comentou: [...] Recebi emails de alguns leitores, pedindo para que disponibilizasse o template que utilizo para gerar os relatórios apartir do .trx como explicado neste post. [...]</li><br><hr /><h2>leia mais...</h2><ul><li><a href="http://www.zezologs.org/blog/template-de-relatrio-de-testes-do-vs/" rel="bookmark" title="Permanent Link: Template de Relatório de Testes do VS">Template de Relatório de Testes do VS</a></li><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-csunit/" rel="bookmark" title="Permanent Link: Testes Unit&aacute;rios com csUnit">Testes Unit&aacute;rios com csUnit</a></li><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/" rel="bookmark" title="Permanent Link: Testes Unit&aacute;rios com componente do .NET">Testes Unit&aacute;rios com componente do .NET</a></li><li><a href="http://www.zezologs.org/blog/executando-testes-com-o-msbuild/" rel="bookmark" title="Permanent Link: Executando Testes com o MSBuild">Executando Testes com o MSBuild</a></li><li><a href="http://www.zezologs.org/blog/testlink-exportao-de-casos-de-teste/" rel="bookmark" title="Permanent Link: Testlink: Exporta&ccedil;&atilde;o de Casos de Teste">Testlink: Exporta&ccedil;&atilde;o de Casos de Teste</a></li></ul><br>
<div align="center"><font face="Tahoma"><font color="#999999" face="Tahoma">Copyright &copy; 
    2007-2008 zezologs.org <strong>|</strong> 
    Todos os direitos reservados <strong>|</strong>
    <font color="#637c32"><strong></strong></font></font><font face="Tahoma"><a href="http://www.zezologs.org/blog/mobile/">Acessibidade</a> 
    <font color="#637c32"><strong>|</strong></font></font> <font face="Tahoma"><a href="http://www.wordpress.com">WordPress 
    </a> </font> <p>Para quem realiza testes unitários com o Visual Studio pôde perceber que ao final da execução dos testes, o VS não disponibiliza nehuma forma de relatório em uma forma amigável, para que essa que possa ser encaminhada para as pessoas interessadas nos resultados. O que VS apresenta é apenas o resumo na aba &#8216;Test Resuts&#8217;. O que irei apresentar a seguir, é uma forma de gerar um relatório para que este possa ser apresentado para aqueles que precisam saber dos resultados destes testes unitários.</p>
<p>Vamos lá, ao executar sua rodada de testes, o VS apresenta a seguinte tela <em>(por questões de confidencialidade, ofusquei os títulos dos testes</em>).</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb.png" alt="image" width="240" height="171" /></a></p>
<p></p>
<p>A saída destes testes consiste dos resultados armazenados em um arquivo de extensão .trx e as assemblies do projeto, localizadas na pasta &#8216;Test Results&#8217;.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image1.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb1.png" alt="image" width="240" height="171" /></a></p>
<p>Este arquivo .trx pode ser aberto e mapeado no excel como um xml, para isso basta abrir o arquivo no excel e ele fará a seguinte pergunta</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image2.png" rel="lightbox"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb2.png" border="0" alt="image" width="244" height="128" /></a></p>
<p>Escolha a &#8216;Usar o painel de tarefas Código-fonte XML&#8217; e ele deverá abrir um painel no lado direito com todo o mapeamento do XML, como exibido abaixo</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image3.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb3.png" alt="image" width="240" height="171" /></a></p>
<p>Agora basta selecionar na planilha, onde que você quer que a informação apareca, procure por sua referência no mapeamento do painel e clique duas vezes.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image4.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb4.png" alt="image" width="240" height="171" /></a></p>
<p>No caso acima, note que a célula ficou com ao borda azul. Depois de criar as referências das infromações que você deseja, basta salvar este arquivo, ele servirá de template.</p>
<p>Um exemplo de como está o meu, segue na imagem abaixo</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image5.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb5.png" alt="image" width="240" height="171" /></a></p>
<p>Feito isso, quando você rodar seus testes, basta abrir o .trx neste template que você acabou de criar. Faça isso indo em <em>Dados &gt; XML &gt; Importar</em>, que as informações que você referenciou no .trx, serão automaticamente preenchidas nas células do excel, com o exibido abaixo</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/07/image6.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb6.png" alt="image" width="240" height="171" /></a> <a href="http://www.zezologs.org/wp-content/uploads/2008/07/image7.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/07/image-thumb7.png" alt="image" width="240" height="170" /></a></p>
<p>Agora sim, temos um relatório bem apresentável, que podemos encaminhar para aqueles que precisam acompanhar os resultados destes testes.</p>
<br><hr /><h2>comentários</h2><li><a href="http://www.zezologs.org/blog/gerando-relatrio-dos-testes-unitrios-a-partir-do-trx/">segunda-feira, agosto 11, 2008</a>, <a href='http://www.zezologs.org/blog/template-de-relatrio-de-testes-do-vs/' rel='external nofollow' class='url'>Template de Relat&oacute;rio de Testes do VS | ...zezologs</a> comentou: [...] Recebi emails de alguns leitores, pedindo para que disponibilizasse o template que utilizo para gerar os relatórios apartir do .trx como explicado neste post. [...]</li><br><hr /><h2>leia mais...</h2><ul><li><a href="http://www.zezologs.org/blog/template-de-relatrio-de-testes-do-vs/" rel="bookmark" title="Permanent Link: Template de Relatório de Testes do VS">Template de Relatório de Testes do VS</a></li><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-csunit/" rel="bookmark" title="Permanent Link: Testes Unit&aacute;rios com csUnit">Testes Unit&aacute;rios com csUnit</a></li><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/" rel="bookmark" title="Permanent Link: Testes Unit&aacute;rios com componente do .NET">Testes Unit&aacute;rios com componente do .NET</a></li><li><a href="http://www.zezologs.org/blog/executando-testes-com-o-msbuild/" rel="bookmark" title="Permanent Link: Executando Testes com o MSBuild">Executando Testes com o MSBuild</a></li><li><a href="http://www.zezologs.org/blog/testlink-exportao-de-casos-de-teste/" rel="bookmark" title="Permanent Link: Testlink: Exporta&ccedil;&atilde;o de Casos de Teste">Testlink: Exporta&ccedil;&atilde;o de Casos de Teste</a></li></ul><br>
<div align="center"><font face="Tahoma"><font color="#999999" face="Tahoma">Copyright &copy; 
    2007-2008 zezologs.org <strong>|</strong> 
    Todos os direitos reservados <strong>|</strong>
    <font color="#637c32"><strong></strong></font></font><font face="Tahoma"><a href="http://www.zezologs.org/blog/mobile/">Acessibidade</a> 
    <font color="#637c32"><strong>|</strong></font></font> <font face="Tahoma"><a href="http://www.wordpress.com">WordPress 
    </a> </font> ]]></description>
		<wfw:commentRss>http://www.zezologs.org/blog/gerando-relatrio-dos-testes-unitrios-a-partir-do-trx/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Testes Unit&#225;rios Dicas Iniciais</title>
		<link>http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/</link>
		<comments>http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 03:02:32 +0000</pubDate>
		<dc:creator>eudescosta</dc:creator>
				<category><![CDATA[Testes Unitários]]></category>

		<guid isPermaLink="false">http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/</guid>
		<description><![CDATA[<p>Tenho publicado uma série de posts sobre testes unitários nas últimas semanas, quem acompanha o blog certamente notou&#8230;pois bem, os testes estão indo de vento em poupa.</p>
<p>Neste post pretendo encorajar aqueles que precisam ouvir boas experiências com este tipo de abordagem bem como tentar deixar bem claro alguns limites nestes testes.</p>
<p>Se você começou a escrever testes unitário agora, você deve estar se fazendo uma série de perguntas, seus testes podem parecer um pouco sem sentido, repetitivos e em algum momento você vai ter que ir no &#8216;pai google&#8217; procurar respostas, boas práticas e dicas.</p>
<p></p>
<p>Pois bem, comigo não foi diferente, visitei inúmeros sites, li e escutei várias opiniões&#8230;e foram delas que <strong>alinhei</strong> minhas expectativas, <strong>aprumei</strong> o rumo e segui em frente&#8230;para o alto e avante!</p>
<p>Perguntas do tipo:</p>
<p><strong>i. Qual a vantagem desta abordagem?</strong>;<br />
<strong>ii. Posso testar todo o sistema usando esta abordagem?;</strong><br />
<strong>iii. <strong>Meus testes são confiáveis?</strong>;</strong><br />
<strong>iv. Quais os meus limites? Onde começo? Onde paro?</strong></p>
<p>Você fará quando começar a por a mão na massa, tentarei expor minas opiniões sobre elas, a seguir&#8230;</p>
<p><strong>i. Qual a vantagem desta abordagem?</strong></p>
<p>Bug custa caro!</p>
<p>Todos nós engenheiros de teste sabemos&#8230;se não sabem, deveriam saber!&#8230;quanto mais tarde no ciclo de vida de um software um bug é encontrado, mais caro ele se torna. Um bug achado durante a especificação pode custar $1 para corrigir&#8230;$10 se achado no design&#8230;$100 se achado na implementação&#8230;$1000 na entrega do produto.</p>
<p>A idéia por trás dos testes de unitários é achar bugs mais cedo, quando um bug é achado nos testes unitários, corrigi-lo é trivial, pois o desenvolvedor está com lógica de seu código ainda fresca em sua mente, mas também não adianta nada achar bugs saídos do forno, se sua equipe não corrige o bug antes de produzir novos códigos, dêem uma lida no trecho retirado do blog <a href="http://www.joelonsoftware.com">Joel on Software</a>.</p>
<blockquote><p>[...]The very first version of Microsoft Word for Windows was considered a &#8220;death march&#8221; project. It took forever. It kept slipping. The whole team was working ridiculous hours, the project was delayed again, and again, and again, and the stress was incredible. When the dang thing finally shipped, years late, Microsoft sent the whole team off to Cancun for a vacation, then sat down for some serious soul-searching.</p>
<p>What they realized was that the project managers had been so insistent on keeping to the &#8220;schedule&#8221; that programmers simply rushed through the coding process, writing extremely bad code, because the bug fixing phase was not a part of the formal schedule. There was no attempt to keep the bug-count down. Quite the opposite. The story goes that one programmer, who had to write the code to calculate the height of a line of text, simply wrote &#8220;return 12;&#8221; and waited for the bug report to come in about how his function is not always correct. The schedule was merely a checklist of features waiting to be turned into bugs. In the post-mortem, this was referred to as &#8220;infinite defects methodology&#8221;[...]</p></blockquote>
<p>Ou seja, se sua equipe, gerentes e/ou líderes técnicos, não dedicarem o tempo de sua equipe para a correção de bugs achados durante esta fase, <strong>nada vai dar certo</strong>, portanto, antes de começar a escrever testes unitários converse com eles, mostre-os a vantagem de adotar esta abordagem, na maioria das vezes os gerentes de projeto gostam desta idéia.</p>
<p><strong>ii. Posso testar todo o sistema usando esta abordagem?</strong></p>
<p>Não!</p>
<p>Nem comece a implementar se você acha que 100% de seus testes vão ser unitários, uma aplicação precisa de uma atenção bem especial na sua interface, não é lá que estão a maioria dos bugs mas ali tem muito bug sim!</p>
<p>No caso do MVC com .NET (padrão muito comum em aplicações WEB com .NET) desenvolvedores costumam usar muito o codebehind para fazer validações, que muitas vezes deveriam ser feitas no controlador, pois é lá que deve conter o &#8216;core&#8217; de sua regra de negócio, mas mesmo assim existem validações pequenas que devem ser feitas na view, e isso deve ser testado na interface.</p>
<p>Existem ferramentas com o propósito de automatizar testes no codebehind, <a href="http://nunitasp.sourceforge.net/">NUnitAsp</a> é um exemplo, mas isso eu pessoalmente não recomendo, pois você pode cair no vício de nunca na sua vida olhar pra a cara de seu produto, enfim, acho que o que está no codebehind, <strong>deve</strong> ser testando na própria interface.</p>
<p><strong>iii. <strong>Meus testes são confiáveis?</strong></strong></p>
<p>Sim&#8230;e Não!</p>
<p>Cometemos muitos erros logo no início, não sabemos o que testar e por várias vezes ficamos bem confusos quanto ao escopo dos testes, quando falo &#8216;Sim, são confiáveis&#8217; digo porque acredito que você sabe fazer seu teste funcionar, quando digo &#8216;Não, não são confiáveis&#8217; digo porque inicialmente você pode estar testando o que não deve.</p>
<p><strong>Teste o comportamento, não o método.</strong></p>
<p>O que devemos estar preocupado é o com o comportamento do método no contexto da aplicação, certo? então tenha a certeza que o método que você está testando se comporta da forma esperada, apenas isso.</p>
<p><strong>Teste métodos públicos, esqueça os privados.</strong></p>
<p>Métodos privados geralmente compõem um objeto e não devem ser diretamente testados.</p>
<p>Estes dois exemplos foram o que me veio a mente, posteriormente publicarei minhas lições aprendidas na implementação de testes unitários.</p>
<p><strong>iv. Quais os meus limites? Onde começo? Onde paro?</strong></p>
<p>Não escreva testes pra todos os métodos existentes no código, existe um limite muito bem definido neste caso, se limite aos cenários que serão amplamente utilizados pela aplicação e se o custo de implementar um teste for alto, não implemente.</p>
<p>Testes devem ser simples, secos e ásperos, nada de códigos mirabolantes no seu teste, se ele estiver assim está errado.</p>
<p>Bem, por enquanto é só, espero ter ajudado com este post, posteriormente estarei postando sobre minhas experiências na implementação dos testes, boas práticas e dicas, qualquer coisa é só comentar!</p>
<br><hr /><h2>comentários</h2><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">sábado, julho 12, 2008</a>, <a href='http://www.via6.com/topico.php?tid=198367' rel='external nofollow' class='url'>Eudes via Rec6</a> comentou: <strong>Testes Unitários Dicas Iniciais | ...zezologs...</strong>

Dicas iniciais para quem tem interesse em realizar teste unitários ...</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">domingo, setembro 21, 2008</a>, <a href='http://programandoem.net' rel='external nofollow' class='url'>Juliano Oliveira</a> comentou: Sobre a passagem:
"No caso do MVC com .NET (padrão muito comum em aplicações WEB com .NET)"

Acho que você se confundiu ao dizer que o ASP.NET MVC é um padrão comum! Afinal, o ASP.NET MVC está em fase de desenvilvimento, no momento está na quinta Preview do framework! Ou você está se referindo a outra coisa?

Fora isso, bem legal o post!

[]´s</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">domingo, setembro 21, 2008</a>, <a href='http://www.zezologs.org' rel='external nofollow' class='url'>eudescosta</a> comentou: Opa Juliano, 

Então, adotamos este padrão em nosso projeto. 

Dá uma olhada no post http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx

Abraço!</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">segunda-feira, setembro 22, 2008</a>, <a href='http://programandoem.net' rel='external nofollow' class='url'>Juliano Oliveira</a> comentou: Então,

Eu conheço bem o ASP.NET MVC, tenho estudado ele desde o fim do ano passado, eles vêm aplicando muitas idéias legais. Acho que é bem melhor que Web Forms.

Pretendemos adota-lo aqui na empresa também mas ele ainda está em fase Alpha!
É perigoso adota-lo no momento. Já pensou você implementa uma aplicação inteira com as caracteristicas de uma Preview 5 (a mais atual no momento) e ao sair a Release ela vem com diversas implementações diferentes!

Mas é muito bom esse framework! Estou aguardando ansioso as implementações de Ajax nativas do framework! Vai brigar com Ruby on Rails em produtividade!

[]´s</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">terça-feira, janeiro 13, 2009</a>, Ju comentou: Boa tarde,

Confesso que seu flog foi muito construtivo para mim pois estou começando na área de qualidade e testes de softwares para web da empresa e ainda sou muito crua no assunto, tenho muitas duvidas primárias de como é implantado o teste unitário, se puder me ajudar ficaria muito agradecida.

 primeiro criei o ambiente com Visual Studio 2008, Nunit e o Test Driven.Net mas gostaria de entender melhor como funciona esta integração.

1- eu preciso ter em todas as máquinas dos desenvolvedores este ambiente instalado?

2- no projeto que vou testar tem que possuir os testes ou é possível colocar todos os testes criados em uma base de dados unica e separada e quando for rodar no nunit ele de alguma forma pegar os testes desta base de dados e textar o código carregado nele?

3- e se eu quiser encrementar uma unica base de dados de teste para q os desenvolvedores joguem seus testes em um a unico lugar por exemplo um servidor para todos terem acesso a mesma base de dados isso é possível?
Ai depois é só jogar o código no servidor e botar p rodar os testes q estão na base de dados?

4- como isso é feito?

5- cada metodo tem q ter um conjunto de códigos especificos? mas é possível esta criação do banco de dados...ai qd for rodar um codigo pegar só os testes especificos?

Se estou falando um monte de asneiras por favor gostaria q me esclarecesse se fosse possível!

desde já agradesço pela ajuda! ::15</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">quarta-feira, janeiro 14, 2009</a>, <a href='http://www.zezologs.org' rel='external nofollow' class='url'>eudescosta</a> comentou: Olá Juliana,

Vou tentar responder suas perguntas

1. Se os desenvolvedores vão rodar os testes, sim, mas se apenas você vai rodar os testes não precisa, o NUnit precisa apenas dos .dll da sua aplicação para rodar os testes, desta forma não há a necessidade de ter o NUnit e o Test Driven.Net.
2. Se entendi bem, queres escrever testes genéricos...mas não seus testes dificilmente irão funcionar, testes unitários/initegração são para uma classe em específico.
3. Você usa alguma ferramenta de gerência de configuração? Utilizar uma ferramenta destas, como CVS, SVN, Tortoise, etc... é recomendado neste caso.
4. Tem que instalar alguma a ferramenta que falei acima.
5. Sim, cada método tem que ter um conjunto de testes específicos.</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">quarta-feira, janeiro 14, 2009</a>, Ju comentou: Obrigada pela ajuda, 

mas então deixa eu ver se entendi...a melhor forma de se implantar um teste unitário é:

1- baixar o Nunit em cada máquina dos desenvolvedores
2- Orientar os desenvolvedores a fazerem os testes unitários 
3- Os proprios desenvolvedores rodarem os testes
4- Enviar para a fase de homologação apenas quando todos os testes unitários e de integração estiverem ok e a área de qualidade fazer apenas testes de caixa preta

Seria assim o processo?

1- mas como posso garantir que os desenvolvedores fizeram e aplicaram os testes unitários?
2- na hora de colocar o método no programa completo eles retiram do projeto os testes e fazem o que com eles? já que não é viável criar um BD estes testes são descartados?

Mais uma vez obrigada,</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">quarta-feira, janeiro 14, 2009</a>, <a href='http://www.zezologs.org' rel='external nofollow' class='url'>eudescosta</a> comentou: Por processo, quem escreve os testes unitários são os desenvolvedores, mas, infelizmente eu não confio nos testes que a maioria deles irá escrever, pois não é de interesse deles achar bugs, certo?

por isso eu acho que eng. de testes devem escrever.

ou seja dependendo da forma como vc vai trabalhar (ou você escreve ou eles escrevem) os passos acima irão mudar.

pela literatura da eng. de software o processo é como vc falou acima, sim.

1. Os desenv. escrevem os testes unitários
2. Os desenv. rodam
3. Os desenv. so liberam quando os testes passarem

mas lembre-se o 'passar' dos desenvolvedores pode ser diferente do seu 'passar', haja vista que vc eng. de testes será bem mais criteriosa que eles ;)</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">quarta-feira, janeiro 14, 2009</a>, Ju comentou: Gostaria de entender também como funciona o teste de integração com ferramentes como Hudson ou CruiseControl.NET (CCNet), eles ficam num servidor separado porque? como é feito este teste?

obrigada,</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">quarta-feira, janeiro 14, 2009</a>, Ju comentou: Em algumas pesquisas ví que o teste unitario é possivel ser feito automaticos também usando está ferramente...como funciona?</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">quarta-feira, janeiro 14, 2009</a>, <a href='http://www.zezologs.org' rel='external nofollow' class='url'>eudescosta</a> comentou: @ Juliana

http://www.zezologs.org/blog/testes-unitrios-com-csunit/

http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/

http://www.zezologs.org/blog/testes-unitrios-nunit-c/</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">quarta-feira, janeiro 14, 2009</a>, <a href='http://programandoem.net' rel='external nofollow' class='url'>Juliano Oliveira</a> comentou: Ju,

Se você estiver desendo sobre uma plataforma Team Fondation Server, você pode adicionar politicas de checkins que só permitem checkins quando os códigos passarem nos testes.

Você deve definir a filosofia de checkins da empresa. Depende muito do modo que vocês trabalham.

[]´s</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">quarta-feira, janeiro 14, 2009</a>, Ju comentou: Muito obrigada pelos esclarecimentos!!!!

bjs</li><br><hr /><h2>leia mais...</h2><ul><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-csunit/" rel="bookmark" title="Permanent Link: Testes Unit&aacute;rios com csUnit">Testes Unit&aacute;rios com csUnit</a></li><li><a href="http://www.zezologs.org/blog/estimando-esforo-de-automao/" rel="bookmark" title="Permanent Link: Estimando Esforço de Automação">Estimando Esforço de Automação</a></li><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/" rel="bookmark" title="Permanent Link: Testes Unit&aacute;rios com componente do .NET">Testes Unit&aacute;rios com componente do .NET</a></li><li><a href="http://www.zezologs.org/blog/template-de-relatrio-de-testes-do-vs/" rel="bookmark" title="Permanent Link: Template de Relatório de Testes do VS">Template de Relatório de Testes do VS</a></li><li><a href="http://www.zezologs.org/blog/executando-testes-com-o-msbuild/" rel="bookmark" title="Permanent Link: Executando Testes com o MSBuild">Executando Testes com o MSBuild</a></li></ul><br>
<div align="center"><font face="Tahoma"><font color="#999999" face="Tahoma">Copyright &copy; 
    2007-2008 zezologs.org <strong>|</strong> 
    Todos os direitos reservados <strong>|</strong>
    <font color="#637c32"><strong></strong></font></font><font face="Tahoma"><a href="http://www.zezologs.org/blog/mobile/">Acessibidade</a> 
    <font color="#637c32"><strong>|</strong></font></font> <font face="Tahoma"><a href="http://www.wordpress.com">WordPress 
    </a> </font> <p>Tenho publicado uma série de posts sobre testes unitários nas últimas semanas, quem acompanha o blog certamente notou&#8230;pois bem, os testes estão indo de vento em poupa.</p>
<p>Neste post pretendo encorajar aqueles que precisam ouvir boas experiências com este tipo de abordagem bem como tentar deixar bem claro alguns limites nestes testes.</p>
<p>Se você começou a escrever testes unitário agora, você deve estar se fazendo uma série de perguntas, seus testes podem parecer um pouco sem sentido, repetitivos e em algum momento você vai ter que ir no &#8216;pai google&#8217; procurar respostas, boas práticas e dicas.</p>
<p></p>
<p>Pois bem, comigo não foi diferente, visitei inúmeros sites, li e escutei várias opiniões&#8230;e foram delas que <strong>alinhei</strong> minhas expectativas, <strong>aprumei</strong> o rumo e segui em frente&#8230;para o alto e avante!</p>
<p>Perguntas do tipo:</p>
<p><strong>i. Qual a vantagem desta abordagem?</strong>;<br />
<strong>ii. Posso testar todo o sistema usando esta abordagem?;</strong><br />
<strong>iii. <strong>Meus testes são confiáveis?</strong>;</strong><br />
<strong>iv. Quais os meus limites? Onde começo? Onde paro?</strong></p>
<p>Você fará quando começar a por a mão na massa, tentarei expor minas opiniões sobre elas, a seguir&#8230;</p>
<p><strong>i. Qual a vantagem desta abordagem?</strong></p>
<p>Bug custa caro!</p>
<p>Todos nós engenheiros de teste sabemos&#8230;se não sabem, deveriam saber!&#8230;quanto mais tarde no ciclo de vida de um software um bug é encontrado, mais caro ele se torna. Um bug achado durante a especificação pode custar $1 para corrigir&#8230;$10 se achado no design&#8230;$100 se achado na implementação&#8230;$1000 na entrega do produto.</p>
<p>A idéia por trás dos testes de unitários é achar bugs mais cedo, quando um bug é achado nos testes unitários, corrigi-lo é trivial, pois o desenvolvedor está com lógica de seu código ainda fresca em sua mente, mas também não adianta nada achar bugs saídos do forno, se sua equipe não corrige o bug antes de produzir novos códigos, dêem uma lida no trecho retirado do blog <a href="http://www.joelonsoftware.com">Joel on Software</a>.</p>
<blockquote><p>[...]The very first version of Microsoft Word for Windows was considered a &#8220;death march&#8221; project. It took forever. It kept slipping. The whole team was working ridiculous hours, the project was delayed again, and again, and again, and the stress was incredible. When the dang thing finally shipped, years late, Microsoft sent the whole team off to Cancun for a vacation, then sat down for some serious soul-searching.</p>
<p>What they realized was that the project managers had been so insistent on keeping to the &#8220;schedule&#8221; that programmers simply rushed through the coding process, writing extremely bad code, because the bug fixing phase was not a part of the formal schedule. There was no attempt to keep the bug-count down. Quite the opposite. The story goes that one programmer, who had to write the code to calculate the height of a line of text, simply wrote &#8220;return 12;&#8221; and waited for the bug report to come in about how his function is not always correct. The schedule was merely a checklist of features waiting to be turned into bugs. In the post-mortem, this was referred to as &#8220;infinite defects methodology&#8221;[...]</p></blockquote>
<p>Ou seja, se sua equipe, gerentes e/ou líderes técnicos, não dedicarem o tempo de sua equipe para a correção de bugs achados durante esta fase, <strong>nada vai dar certo</strong>, portanto, antes de começar a escrever testes unitários converse com eles, mostre-os a vantagem de adotar esta abordagem, na maioria das vezes os gerentes de projeto gostam desta idéia.</p>
<p><strong>ii. Posso testar todo o sistema usando esta abordagem?</strong></p>
<p>Não!</p>
<p>Nem comece a implementar se você acha que 100% de seus testes vão ser unitários, uma aplicação precisa de uma atenção bem especial na sua interface, não é lá que estão a maioria dos bugs mas ali tem muito bug sim!</p>
<p>No caso do MVC com .NET (padrão muito comum em aplicações WEB com .NET) desenvolvedores costumam usar muito o codebehind para fazer validações, que muitas vezes deveriam ser feitas no controlador, pois é lá que deve conter o &#8216;core&#8217; de sua regra de negócio, mas mesmo assim existem validações pequenas que devem ser feitas na view, e isso deve ser testado na interface.</p>
<p>Existem ferramentas com o propósito de automatizar testes no codebehind, <a href="http://nunitasp.sourceforge.net/">NUnitAsp</a> é um exemplo, mas isso eu pessoalmente não recomendo, pois você pode cair no vício de nunca na sua vida olhar pra a cara de seu produto, enfim, acho que o que está no codebehind, <strong>deve</strong> ser testando na própria interface.</p>
<p><strong>iii. <strong>Meus testes são confiáveis?</strong></strong></p>
<p>Sim&#8230;e Não!</p>
<p>Cometemos muitos erros logo no início, não sabemos o que testar e por várias vezes ficamos bem confusos quanto ao escopo dos testes, quando falo &#8216;Sim, são confiáveis&#8217; digo porque acredito que você sabe fazer seu teste funcionar, quando digo &#8216;Não, não são confiáveis&#8217; digo porque inicialmente você pode estar testando o que não deve.</p>
<p><strong>Teste o comportamento, não o método.</strong></p>
<p>O que devemos estar preocupado é o com o comportamento do método no contexto da aplicação, certo? então tenha a certeza que o método que você está testando se comporta da forma esperada, apenas isso.</p>
<p><strong>Teste métodos públicos, esqueça os privados.</strong></p>
<p>Métodos privados geralmente compõem um objeto e não devem ser diretamente testados.</p>
<p>Estes dois exemplos foram o que me veio a mente, posteriormente publicarei minhas lições aprendidas na implementação de testes unitários.</p>
<p><strong>iv. Quais os meus limites? Onde começo? Onde paro?</strong></p>
<p>Não escreva testes pra todos os métodos existentes no código, existe um limite muito bem definido neste caso, se limite aos cenários que serão amplamente utilizados pela aplicação e se o custo de implementar um teste for alto, não implemente.</p>
<p>Testes devem ser simples, secos e ásperos, nada de códigos mirabolantes no seu teste, se ele estiver assim está errado.</p>
<p>Bem, por enquanto é só, espero ter ajudado com este post, posteriormente estarei postando sobre minhas experiências na implementação dos testes, boas práticas e dicas, qualquer coisa é só comentar!</p>
<br><hr /><h2>comentários</h2><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">sábado, julho 12, 2008</a>, <a href='http://www.via6.com/topico.php?tid=198367' rel='external nofollow' class='url'>Eudes via Rec6</a> comentou: <strong>Testes Unitários Dicas Iniciais | ...zezologs...</strong>

Dicas iniciais para quem tem interesse em realizar teste unitários ...</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">domingo, setembro 21, 2008</a>, <a href='http://programandoem.net' rel='external nofollow' class='url'>Juliano Oliveira</a> comentou: Sobre a passagem:
"No caso do MVC com .NET (padrão muito comum em aplicações WEB com .NET)"

Acho que você se confundiu ao dizer que o ASP.NET MVC é um padrão comum! Afinal, o ASP.NET MVC está em fase de desenvilvimento, no momento está na quinta Preview do framework! Ou você está se referindo a outra coisa?

Fora isso, bem legal o post!

[]´s</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">domingo, setembro 21, 2008</a>, <a href='http://www.zezologs.org' rel='external nofollow' class='url'>eudescosta</a> comentou: Opa Juliano, 

Então, adotamos este padrão em nosso projeto. 

Dá uma olhada no post http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx

Abraço!</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">segunda-feira, setembro 22, 2008</a>, <a href='http://programandoem.net' rel='external nofollow' class='url'>Juliano Oliveira</a> comentou: Então,

Eu conheço bem o ASP.NET MVC, tenho estudado ele desde o fim do ano passado, eles vêm aplicando muitas idéias legais. Acho que é bem melhor que Web Forms.

Pretendemos adota-lo aqui na empresa também mas ele ainda está em fase Alpha!
É perigoso adota-lo no momento. Já pensou você implementa uma aplicação inteira com as caracteristicas de uma Preview 5 (a mais atual no momento) e ao sair a Release ela vem com diversas implementações diferentes!

Mas é muito bom esse framework! Estou aguardando ansioso as implementações de Ajax nativas do framework! Vai brigar com Ruby on Rails em produtividade!

[]´s</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">terça-feira, janeiro 13, 2009</a>, Ju comentou: Boa tarde,

Confesso que seu flog foi muito construtivo para mim pois estou começando na área de qualidade e testes de softwares para web da empresa e ainda sou muito crua no assunto, tenho muitas duvidas primárias de como é implantado o teste unitário, se puder me ajudar ficaria muito agradecida.

 primeiro criei o ambiente com Visual Studio 2008, Nunit e o Test Driven.Net mas gostaria de entender melhor como funciona esta integração.

1- eu preciso ter em todas as máquinas dos desenvolvedores este ambiente instalado?

2- no projeto que vou testar tem que possuir os testes ou é possível colocar todos os testes criados em uma base de dados unica e separada e quando for rodar no nunit ele de alguma forma pegar os testes desta base de dados e textar o código carregado nele?

3- e se eu quiser encrementar uma unica base de dados de teste para q os desenvolvedores joguem seus testes em um a unico lugar por exemplo um servidor para todos terem acesso a mesma base de dados isso é possível?
Ai depois é só jogar o código no servidor e botar p rodar os testes q estão na base de dados?

4- como isso é feito?

5- cada metodo tem q ter um conjunto de códigos especificos? mas é possível esta criação do banco de dados...ai qd for rodar um codigo pegar só os testes especificos?

Se estou falando um monte de asneiras por favor gostaria q me esclarecesse se fosse possível!

desde já agradesço pela ajuda! ::15</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">quarta-feira, janeiro 14, 2009</a>, <a href='http://www.zezologs.org' rel='external nofollow' class='url'>eudescosta</a> comentou: Olá Juliana,

Vou tentar responder suas perguntas

1. Se os desenvolvedores vão rodar os testes, sim, mas se apenas você vai rodar os testes não precisa, o NUnit precisa apenas dos .dll da sua aplicação para rodar os testes, desta forma não há a necessidade de ter o NUnit e o Test Driven.Net.
2. Se entendi bem, queres escrever testes genéricos...mas não seus testes dificilmente irão funcionar, testes unitários/initegração são para uma classe em específico.
3. Você usa alguma ferramenta de gerência de configuração? Utilizar uma ferramenta destas, como CVS, SVN, Tortoise, etc... é recomendado neste caso.
4. Tem que instalar alguma a ferramenta que falei acima.
5. Sim, cada método tem que ter um conjunto de testes específicos.</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">quarta-feira, janeiro 14, 2009</a>, Ju comentou: Obrigada pela ajuda, 

mas então deixa eu ver se entendi...a melhor forma de se implantar um teste unitário é:

1- baixar o Nunit em cada máquina dos desenvolvedores
2- Orientar os desenvolvedores a fazerem os testes unitários 
3- Os proprios desenvolvedores rodarem os testes
4- Enviar para a fase de homologação apenas quando todos os testes unitários e de integração estiverem ok e a área de qualidade fazer apenas testes de caixa preta

Seria assim o processo?

1- mas como posso garantir que os desenvolvedores fizeram e aplicaram os testes unitários?
2- na hora de colocar o método no programa completo eles retiram do projeto os testes e fazem o que com eles? já que não é viável criar um BD estes testes são descartados?

Mais uma vez obrigada,</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">quarta-feira, janeiro 14, 2009</a>, <a href='http://www.zezologs.org' rel='external nofollow' class='url'>eudescosta</a> comentou: Por processo, quem escreve os testes unitários são os desenvolvedores, mas, infelizmente eu não confio nos testes que a maioria deles irá escrever, pois não é de interesse deles achar bugs, certo?

por isso eu acho que eng. de testes devem escrever.

ou seja dependendo da forma como vc vai trabalhar (ou você escreve ou eles escrevem) os passos acima irão mudar.

pela literatura da eng. de software o processo é como vc falou acima, sim.

1. Os desenv. escrevem os testes unitários
2. Os desenv. rodam
3. Os desenv. so liberam quando os testes passarem

mas lembre-se o 'passar' dos desenvolvedores pode ser diferente do seu 'passar', haja vista que vc eng. de testes será bem mais criteriosa que eles ;)</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">quarta-feira, janeiro 14, 2009</a>, Ju comentou: Gostaria de entender também como funciona o teste de integração com ferramentes como Hudson ou CruiseControl.NET (CCNet), eles ficam num servidor separado porque? como é feito este teste?

obrigada,</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">quarta-feira, janeiro 14, 2009</a>, Ju comentou: Em algumas pesquisas ví que o teste unitario é possivel ser feito automaticos também usando está ferramente...como funciona?</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">quarta-feira, janeiro 14, 2009</a>, <a href='http://www.zezologs.org' rel='external nofollow' class='url'>eudescosta</a> comentou: @ Juliana

http://www.zezologs.org/blog/testes-unitrios-com-csunit/

http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/

http://www.zezologs.org/blog/testes-unitrios-nunit-c/</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">quarta-feira, janeiro 14, 2009</a>, <a href='http://programandoem.net' rel='external nofollow' class='url'>Juliano Oliveira</a> comentou: Ju,

Se você estiver desendo sobre uma plataforma Team Fondation Server, você pode adicionar politicas de checkins que só permitem checkins quando os códigos passarem nos testes.

Você deve definir a filosofia de checkins da empresa. Depende muito do modo que vocês trabalham.

[]´s</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/">quarta-feira, janeiro 14, 2009</a>, Ju comentou: Muito obrigada pelos esclarecimentos!!!!

bjs</li><br><hr /><h2>leia mais...</h2><ul><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-csunit/" rel="bookmark" title="Permanent Link: Testes Unit&aacute;rios com csUnit">Testes Unit&aacute;rios com csUnit</a></li><li><a href="http://www.zezologs.org/blog/estimando-esforo-de-automao/" rel="bookmark" title="Permanent Link: Estimando Esforço de Automação">Estimando Esforço de Automação</a></li><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/" rel="bookmark" title="Permanent Link: Testes Unit&aacute;rios com componente do .NET">Testes Unit&aacute;rios com componente do .NET</a></li><li><a href="http://www.zezologs.org/blog/template-de-relatrio-de-testes-do-vs/" rel="bookmark" title="Permanent Link: Template de Relatório de Testes do VS">Template de Relatório de Testes do VS</a></li><li><a href="http://www.zezologs.org/blog/executando-testes-com-o-msbuild/" rel="bookmark" title="Permanent Link: Executando Testes com o MSBuild">Executando Testes com o MSBuild</a></li></ul><br>
<div align="center"><font face="Tahoma"><font color="#999999" face="Tahoma">Copyright &copy; 
    2007-2008 zezologs.org <strong>|</strong> 
    Todos os direitos reservados <strong>|</strong>
    <font color="#637c32"><strong></strong></font></font><font face="Tahoma"><a href="http://www.zezologs.org/blog/mobile/">Acessibidade</a> 
    <font color="#637c32"><strong>|</strong></font></font> <font face="Tahoma"><a href="http://www.wordpress.com">WordPress 
    </a> </font> ]]></description>
		<wfw:commentRss>http://www.zezologs.org/blog/testes-unitrios-dicas-iniciais/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Tasks do MSBuild com o msbuildtasks</title>
		<link>http://www.zezologs.org/blog/tasks-do-msbuild-com-o-msbuildtasks/</link>
		<comments>http://www.zezologs.org/blog/tasks-do-msbuild-com-o-msbuildtasks/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 14:44:48 +0000</pubDate>
		<dc:creator>eudescosta</dc:creator>
				<category><![CDATA[Prevenção de Defeitos]]></category>
		<category><![CDATA[Testes Unitários]]></category>
		<category><![CDATA[msbuild]]></category>

		<guid isPermaLink="false">http://www.zezologs.org/blog/tasks-do-msbuld-com-o-msbuildtasks/</guid>
		<description><![CDATA[<p>Ainda sobre o MSBuild, para quem está planejando utilizar integração contínua em seus projetos e utilizará o MSBuild como ferramenta de geração de builds, recomendo dar uma olhada no projeto <a href="http://msbuildtasks.tigris.org/">msbuildtracks</a>, que é um repósitrório open source de tasks para o MSBuild.</p>
<p>Existem tasks bastante úteis, como por exemplo, para o SVN (SvnCheckout, SvnClient, SvnCommit, SvnCopy, SvnInfo, SvnExport, SvnUpdate, SvnVersion) manipulação de arquivos XML (Xml.XmlMassUpdate, Xml.XmlQuery, Xml.XmlQuery, XmlWrite) e etc&#8230;</p>
<p>A implementação destas tasks, é feita como falei em <a href="http://www.zezologs.org/blog/executando-testes-com-o-msbuild/">Executando Testes com o MSbuild</a>, utilizando o arquivo do projeto.</p>
<p></p>
<p>No caso do Subversion (SVN) segue um exemplo retirado do projeto que mencionei acima<br />
[sourcecode language='xml']<br />
<Target Name="Checkout"><br />
<RemoveDir Directories="$(TestWorkingFolder)" /></p>
<p><SvnCheckout RepositoryPath="$(TestRepositoryPath)"<br />
LocalPath="$(TestWorkingFolder)"><br />
<Output TaskParameter="Revision" PropertyName="Revision" /><br />
</SvnCheckout></p>
<p><Message Text="Revision: $(Revision)" /><br />
</Target></p>
<p><Target Name="Update" DependsOnTargets="Checkout"><br />
<Delete Files="$(TestWorkingFolder)\SvnClientTest.cs" /><br />
<SvnUpdate LocalPath="$(TestWorkingFolder)"><br />
<Output TaskParameter="Revision" PropertyName="Revision" /><br />
</SvnUpdate><br />
<Message Text="Revision: $(Revision)" /><br />
</Target></p>
<p><ItemGroup><br />
<CommitFiles Include="$(TestWorkingFolder)\test.txt" /><br />
<CommitFiles Include="$(TestWorkingFolder)\Blah.txt" /><br />
</ItemGroup></p>
<p><Target Name="Commit"><br />
<RemoveDir Directories="$(TestWorkingFolder)" /><br />
<SvnCheckout RepositoryPath="$(LocalTestRepositoryPath)"<br />
LocalPath="$(TestWorkingFolder)"><br />
<Output TaskParameter="Revision" PropertyName="Revision" /><br />
</SvnCheckout><br />
<Message Text="Checked out revision: $(Revision)" /></p>
<p><WriteLinesToFile File="%(CommitFiles.FullPath)" Lines="This is a test append." /></p>
<p><SvnCommit Targets="@(CommitFiles)" Message="Auto commit from MSBuild."><br />
<Output TaskParameter="Revision" PropertyName="Revision" /><br />
</SvnCommit></p>
<p><Message Text="Committed revision: $(Revision)" /><br />
</Target><br />
[/sourcecode]<br />
Note as tasks <strong>Checkout</strong> &gt; <strong>Update</strong> &gt; <strong>Commit </strong>que realizam as operações do SVN.</p>
<hr /><h2>leia mais...</h2><ul><li><a href="http://www.zezologs.org/blog/executando-testes-com-o-msbuild/" rel="bookmark" title="Permanent Link: Executando Testes com o MSBuild">Executando Testes com o MSBuild</a></li></ul><br>
<div align="center"><font face="Tahoma"><font color="#999999" face="Tahoma">Copyright &copy; 
    2007-2008 zezologs.org <strong>|</strong> 
    Todos os direitos reservados <strong>|</strong>
    <font color="#637c32"><strong></strong></font></font><font face="Tahoma"><a href="http://www.zezologs.org/blog/mobile/">Acessibidade</a> 
    <font color="#637c32"><strong>|</strong></font></font> <font face="Tahoma"><a href="http://www.wordpress.com">WordPress 
    </a> </font> <p>Ainda sobre o MSBuild, para quem está planejando utilizar integração contínua em seus projetos e utilizará o MSBuild como ferramenta de geração de builds, recomendo dar uma olhada no projeto <a href="http://msbuildtasks.tigris.org/">msbuildtracks</a>, que é um repósitrório open source de tasks para o MSBuild.</p>
<p>Existem tasks bastante úteis, como por exemplo, para o SVN (SvnCheckout, SvnClient, SvnCommit, SvnCopy, SvnInfo, SvnExport, SvnUpdate, SvnVersion) manipulação de arquivos XML (Xml.XmlMassUpdate, Xml.XmlQuery, Xml.XmlQuery, XmlWrite) e etc&#8230;</p>
<p>A implementação destas tasks, é feita como falei em <a href="http://www.zezologs.org/blog/executando-testes-com-o-msbuild/">Executando Testes com o MSbuild</a>, utilizando o arquivo do projeto.</p>
<p></p>
<p>No caso do Subversion (SVN) segue um exemplo retirado do projeto que mencionei acima<br />
[sourcecode language='xml']<br />
<Target Name="Checkout"><br />
<RemoveDir Directories="$(TestWorkingFolder)" /></p>
<p><SvnCheckout RepositoryPath="$(TestRepositoryPath)"<br />
LocalPath="$(TestWorkingFolder)"><br />
<Output TaskParameter="Revision" PropertyName="Revision" /><br />
</SvnCheckout></p>
<p><Message Text="Revision: $(Revision)" /><br />
</Target></p>
<p><Target Name="Update" DependsOnTargets="Checkout"><br />
<Delete Files="$(TestWorkingFolder)\SvnClientTest.cs" /><br />
<SvnUpdate LocalPath="$(TestWorkingFolder)"><br />
<Output TaskParameter="Revision" PropertyName="Revision" /><br />
</SvnUpdate><br />
<Message Text="Revision: $(Revision)" /><br />
</Target></p>
<p><ItemGroup><br />
<CommitFiles Include="$(TestWorkingFolder)\test.txt" /><br />
<CommitFiles Include="$(TestWorkingFolder)\Blah.txt" /><br />
</ItemGroup></p>
<p><Target Name="Commit"><br />
<RemoveDir Directories="$(TestWorkingFolder)" /><br />
<SvnCheckout RepositoryPath="$(LocalTestRepositoryPath)"<br />
LocalPath="$(TestWorkingFolder)"><br />
<Output TaskParameter="Revision" PropertyName="Revision" /><br />
</SvnCheckout><br />
<Message Text="Checked out revision: $(Revision)" /></p>
<p><WriteLinesToFile File="%(CommitFiles.FullPath)" Lines="This is a test append." /></p>
<p><SvnCommit Targets="@(CommitFiles)" Message="Auto commit from MSBuild."><br />
<Output TaskParameter="Revision" PropertyName="Revision" /><br />
</SvnCommit></p>
<p><Message Text="Committed revision: $(Revision)" /><br />
</Target><br />
[/sourcecode]<br />
Note as tasks <strong>Checkout</strong> &gt; <strong>Update</strong> &gt; <strong>Commit </strong>que realizam as operações do SVN.</p>
<hr /><h2>leia mais...</h2><ul><li><a href="http://www.zezologs.org/blog/executando-testes-com-o-msbuild/" rel="bookmark" title="Permanent Link: Executando Testes com o MSBuild">Executando Testes com o MSBuild</a></li></ul><br>
<div align="center"><font face="Tahoma"><font color="#999999" face="Tahoma">Copyright &copy; 
    2007-2008 zezologs.org <strong>|</strong> 
    Todos os direitos reservados <strong>|</strong>
    <font color="#637c32"><strong></strong></font></font><font face="Tahoma"><a href="http://www.zezologs.org/blog/mobile/">Acessibidade</a> 
    <font color="#637c32"><strong>|</strong></font></font> <font face="Tahoma"><a href="http://www.wordpress.com">WordPress 
    </a> </font> ]]></description>
		<wfw:commentRss>http://www.zezologs.org/blog/tasks-do-msbuild-com-o-msbuildtasks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testes Unit&#225;rios com componente do .NET</title>
		<link>http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/</link>
		<comments>http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/#comments</comments>
		<pubDate>Mon, 26 May 2008 16:31:36 +0000</pubDate>
		<dc:creator>eudescosta</dc:creator>
				<category><![CDATA[Automação de Testes]]></category>
		<category><![CDATA[Execução de Testes]]></category>
		<category><![CDATA[Testes Unitários]]></category>
		<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/</guid>
		<description><![CDATA[<p>Ainda como resultado das PoC´s que estou fazendo, analisei recentemente um componente do próprio .NET para escrita e execução de testes unitários.</p>
<p>A última PoC que realizei e publiquei aqui no blog foi no uso do <a href="http://www.zezologs.org/blog/testes-unitrios-nunit-c/" target="_blank">NUnit</a>.</p>
<p>Bem, uma vantagem inicial na adoção de testes unitários usando o componente do .NET é a facilidade com que a integração acontece, ao executar os seus testes o .NET automaticamente cria uma estrutura de arquivos contendo a build em que os testes foram realizados (vide imagens abaixo)</p>
<p></p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/05/image5.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb5.png" alt="image" height="171" width="240" /></a> <a href="http://www.zezologs.org/wp-content/uploads/2008/05/image6.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb6.png" alt="image" height="171" width="240" /></a></p>
<p>Bem isso já é um pequeno diferencial pois facilitará a sua organização e controle de execução.</p>
<p>Nos próximos parágrafos explicarei passo a passo como realizar esta atividade.</p>
<p>Com o Visual Studio aberto vá em <strong>Test &gt; New Test </strong>em seguida onde tem &#8220;Add to Test Project&#8221; no final da tela escolha &#8220;Create New Visual C# test project&#8230;&#8221;.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/05/image7.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb7.png" alt="image" height="171" width="240" /></a> <a href="http://www.zezologs.org/wp-content/uploads/2008/05/image8.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb8.png" alt="image" height="171" width="240" /></a></p>
<p>Note que criar seus testes em um projeto novo não é obrigatório, apenas acredito que fica melhor para a sua organização, pois desta forma, todos os seus testes estarão em um projeto diferente do código, você terá porém, que incluir o namespace do projeto onde está seu código, no cabecalho do código onde estão seus testes unitários.</p>
<p>Bem feito isso, basta basicamente escrever o código dos testes, estou usando o mesmo programinha que usei no post <a href="http://www.zezologs.org/blog/testes-unitrios-nunit-c/" target="_blank">passado</a>.</p>
<p>Observe a estrutura do código abaixo, como é parecida com a utilizada pelo NUnit.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/05/image9.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb9.png" alt="image" height="171" width="240" /></a></p>
<p>Note tambem, que estou  incluindo o namespace do meu código em &#8220;using code;&#8221;.</p>
<p>Ok, feito isso basta ir em <strong>Test &gt; Run &gt; All tests in solution </strong>ou<strong> CTRL + R,A</strong> e deixar o .NET executar os testes, você pode também selecionar o caso de teste que falhou e vizualizar os detalhes do erro, veja nas imagens abaixo.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/05/image10.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb10.png" alt="image" height="175" width="240" /> </a> <a href="http://www.zezologs.org/wp-content/uploads/2008/05/image11.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb11.png" alt="image" height="171" width="240" /></a></p>
<p>Bem, é isso, isto foi apenas uma breve apresentação deste componente que vem com o próprio VS 2008, sua principal caractarística é a facilidade na integração, na escrita dos casos de teste não há diferença ou impecílio algum.</p>
<p>O .NET também tem uma ferramenta para análise de cobertura de código, que trabalha integrado aos testes unitários a medida que os mesmos são executados, pena que esta ferramenta está disponível apenas na edição Test Team e não na Professional.</p>
<br><hr /><h2>comentários</h2><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/">quarta-feira, maio 28, 2008</a>, <a href='http://www.zezologs.org/blog/testes-unitrios-com-csunit/' rel='external nofollow' class='url'>Testes Unit&aacute;rios com csUnit | ...zezologs</a> comentou: [...] de testes do proprio Visual &#233; melhor, pela quest&#227;o da integra&#231;&#227;o como falei anteriormente. Mas o que acho fant&#225;sticos nestas ferramentas open source de testes unit&#225;rios &#233; que [...]</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/">terça-feira, junho 3, 2008</a>, <a href='http://www.zezologs.org/blog/executando-testes-com-o-msbuild/' rel='external nofollow' class='url'>Executando Testes com o MSbuild | ...zezologs</a> comentou: [...] que venho utilizando nos exemplos passados em &#8220;Testes Unitários com csUnit&#8220;, &#8220;Testes Unitários com componente do .NET&#8221; e &#8220;Testes Unitários: NUnit &amp; [...]</li><br><hr /><h2>leia mais...</h2><ul><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-csunit/" rel="bookmark" title="Permanent Link: Testes Unit&aacute;rios com csUnit">Testes Unit&aacute;rios com csUnit</a></li><li><a href="http://www.zezologs.org/blog/executando-testes-com-o-msbuild/" rel="bookmark" title="Permanent Link: Executando Testes com o MSBuild">Executando Testes com o MSBuild</a></li><li><a href="http://www.zezologs.org/blog/identificando-gargalos-em-net-com-contadores-de-performance/" rel="bookmark" title="Permanent Link: .NET e Contadores de Performance">.NET e Contadores de Performance</a></li><li><a href="http://www.zezologs.org/blog/testlink-exportao-de-casos-de-teste/" rel="bookmark" title="Permanent Link: Testlink: Exporta&ccedil;&atilde;o de Casos de Teste">Testlink: Exporta&ccedil;&atilde;o de Casos de Teste</a></li><li><a href="http://www.zezologs.org/blog/template-de-relatrio-de-testes-do-vs/" rel="bookmark" title="Permanent Link: Template de Relatório de Testes do VS">Template de Relatório de Testes do VS</a></li></ul><br>
<div align="center"><font face="Tahoma"><font color="#999999" face="Tahoma">Copyright &copy; 
    2007-2008 zezologs.org <strong>|</strong> 
    Todos os direitos reservados <strong>|</strong>
    <font color="#637c32"><strong></strong></font></font><font face="Tahoma"><a href="http://www.zezologs.org/blog/mobile/">Acessibidade</a> 
    <font color="#637c32"><strong>|</strong></font></font> <font face="Tahoma"><a href="http://www.wordpress.com">WordPress 
    </a> </font> <p>Ainda como resultado das PoC´s que estou fazendo, analisei recentemente um componente do próprio .NET para escrita e execução de testes unitários.</p>
<p>A última PoC que realizei e publiquei aqui no blog foi no uso do <a href="http://www.zezologs.org/blog/testes-unitrios-nunit-c/" target="_blank">NUnit</a>.</p>
<p>Bem, uma vantagem inicial na adoção de testes unitários usando o componente do .NET é a facilidade com que a integração acontece, ao executar os seus testes o .NET automaticamente cria uma estrutura de arquivos contendo a build em que os testes foram realizados (vide imagens abaixo)</p>
<p></p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/05/image5.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb5.png" alt="image" height="171" width="240" /></a> <a href="http://www.zezologs.org/wp-content/uploads/2008/05/image6.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb6.png" alt="image" height="171" width="240" /></a></p>
<p>Bem isso já é um pequeno diferencial pois facilitará a sua organização e controle de execução.</p>
<p>Nos próximos parágrafos explicarei passo a passo como realizar esta atividade.</p>
<p>Com o Visual Studio aberto vá em <strong>Test &gt; New Test </strong>em seguida onde tem &#8220;Add to Test Project&#8221; no final da tela escolha &#8220;Create New Visual C# test project&#8230;&#8221;.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/05/image7.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb7.png" alt="image" height="171" width="240" /></a> <a href="http://www.zezologs.org/wp-content/uploads/2008/05/image8.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb8.png" alt="image" height="171" width="240" /></a></p>
<p>Note que criar seus testes em um projeto novo não é obrigatório, apenas acredito que fica melhor para a sua organização, pois desta forma, todos os seus testes estarão em um projeto diferente do código, você terá porém, que incluir o namespace do projeto onde está seu código, no cabecalho do código onde estão seus testes unitários.</p>
<p>Bem feito isso, basta basicamente escrever o código dos testes, estou usando o mesmo programinha que usei no post <a href="http://www.zezologs.org/blog/testes-unitrios-nunit-c/" target="_blank">passado</a>.</p>
<p>Observe a estrutura do código abaixo, como é parecida com a utilizada pelo NUnit.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/05/image9.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb9.png" alt="image" height="171" width="240" /></a></p>
<p>Note tambem, que estou  incluindo o namespace do meu código em &#8220;using code;&#8221;.</p>
<p>Ok, feito isso basta ir em <strong>Test &gt; Run &gt; All tests in solution </strong>ou<strong> CTRL + R,A</strong> e deixar o .NET executar os testes, você pode também selecionar o caso de teste que falhou e vizualizar os detalhes do erro, veja nas imagens abaixo.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/05/image10.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb10.png" alt="image" height="175" width="240" /> </a> <a href="http://www.zezologs.org/wp-content/uploads/2008/05/image11.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb11.png" alt="image" height="171" width="240" /></a></p>
<p>Bem, é isso, isto foi apenas uma breve apresentação deste componente que vem com o próprio VS 2008, sua principal caractarística é a facilidade na integração, na escrita dos casos de teste não há diferença ou impecílio algum.</p>
<p>O .NET também tem uma ferramenta para análise de cobertura de código, que trabalha integrado aos testes unitários a medida que os mesmos são executados, pena que esta ferramenta está disponível apenas na edição Test Team e não na Professional.</p>
<br><hr /><h2>comentários</h2><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/">quarta-feira, maio 28, 2008</a>, <a href='http://www.zezologs.org/blog/testes-unitrios-com-csunit/' rel='external nofollow' class='url'>Testes Unit&aacute;rios com csUnit | ...zezologs</a> comentou: [...] de testes do proprio Visual &#233; melhor, pela quest&#227;o da integra&#231;&#227;o como falei anteriormente. Mas o que acho fant&#225;sticos nestas ferramentas open source de testes unit&#225;rios &#233; que [...]</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/">terça-feira, junho 3, 2008</a>, <a href='http://www.zezologs.org/blog/executando-testes-com-o-msbuild/' rel='external nofollow' class='url'>Executando Testes com o MSbuild | ...zezologs</a> comentou: [...] que venho utilizando nos exemplos passados em &#8220;Testes Unitários com csUnit&#8220;, &#8220;Testes Unitários com componente do .NET&#8221; e &#8220;Testes Unitários: NUnit &amp; [...]</li><br><hr /><h2>leia mais...</h2><ul><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-csunit/" rel="bookmark" title="Permanent Link: Testes Unit&aacute;rios com csUnit">Testes Unit&aacute;rios com csUnit</a></li><li><a href="http://www.zezologs.org/blog/executando-testes-com-o-msbuild/" rel="bookmark" title="Permanent Link: Executando Testes com o MSBuild">Executando Testes com o MSBuild</a></li><li><a href="http://www.zezologs.org/blog/identificando-gargalos-em-net-com-contadores-de-performance/" rel="bookmark" title="Permanent Link: .NET e Contadores de Performance">.NET e Contadores de Performance</a></li><li><a href="http://www.zezologs.org/blog/testlink-exportao-de-casos-de-teste/" rel="bookmark" title="Permanent Link: Testlink: Exporta&ccedil;&atilde;o de Casos de Teste">Testlink: Exporta&ccedil;&atilde;o de Casos de Teste</a></li><li><a href="http://www.zezologs.org/blog/template-de-relatrio-de-testes-do-vs/" rel="bookmark" title="Permanent Link: Template de Relatório de Testes do VS">Template de Relatório de Testes do VS</a></li></ul><br>
<div align="center"><font face="Tahoma"><font color="#999999" face="Tahoma">Copyright &copy; 
    2007-2008 zezologs.org <strong>|</strong> 
    Todos os direitos reservados <strong>|</strong>
    <font color="#637c32"><strong></strong></font></font><font face="Tahoma"><a href="http://www.zezologs.org/blog/mobile/">Acessibidade</a> 
    <font color="#637c32"><strong>|</strong></font></font> <font face="Tahoma"><a href="http://www.wordpress.com">WordPress 
    </a> </font> ]]></description>
		<wfw:commentRss>http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Testes Unit&#225;rios: NUnit &amp; C#</title>
		<link>http://www.zezologs.org/blog/testes-unitrios-nunit-c/</link>
		<comments>http://www.zezologs.org/blog/testes-unitrios-nunit-c/#comments</comments>
		<pubDate>Tue, 20 May 2008 20:01:56 +0000</pubDate>
		<dc:creator>eudescosta</dc:creator>
				<category><![CDATA[Automação de Testes]]></category>
		<category><![CDATA[Testes Unitários]]></category>
		<category><![CDATA[Automação]]></category>
		<category><![CDATA[NUnit]]></category>

		<guid isPermaLink="false">http://www.zezologs.org/blog/testes-unitrios-nunit-c/</guid>
		<description><![CDATA[<p>Estou implementando testes automáticos em um novo projeto aqui no <a href="http://www.cesar.org.br" target="_blank">cesar</a>, antes de inicar de fato as atividades, estou realizando alguns PoC´s para achar a melhor forma de realizar estes testes unitários automáticos. Andei dando uma busca por alguns frameworks que suportassem o desenvolmento de testes unitários automáticos para C#, de cara achei o <a href="http://www.nunit.org/" target="_blank">NUnit</a>, ele é free e aparentemente bastante usado.</p>
<p>Irei tentar, aos poucos detalhar minha experiência nesta PoC, tanto no uso do NUnit em conjunto com o C#, quanto no uso de outras ferramentas em conjunto também com o C# para a criação de testes automáticos. Minhas dificuldades, descobertas e impressões ficarão registradas aqui.</p>
<p>Bem antes de tudo, o ambiente que estou utilizando é o seguinte: <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=94de806b-e1a1-4282-abc5-1f7347782553&amp;DisplayLang=en" target="_blank">Visual Studio 2008</a> e o <a href="http://www.nunit.org/index.php?p=download" target="_blank">NUnit</a>, após a instalação do itens acima, é so por a mão na massa.</p>
<p></p>
<p>Irei dividir em 4 partes distintas este processo inicial: Configuração, Escrita do Programa, Escrita do Teste, Execução no NUnit, irei explicar as 4 partes de uma forma mais macro, não irei entrar nos detalhes, pois não é o foco aqui, se adotasse esta abordagem esse post iria ser bem longo <img src='http://www.zezologs.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Configuração</strong></p>
<p>Com o Visual Studio 2008 aberto, no Solutions Explorer pressione o botão direito do mouse e escolha &#8220;Add Reference&#8221;, logo após em &#8220;Browse&#8221; informe a localização da <em>nunit.framework.dll</em> do NUnit, que deverá estar no local onde você escolheu instalá-lo, como mostrado na figura abaixo, depois da a indicação, observe que no Solutions Explorer ele irá exibir as referências do NUnit, observe novamente nas imagens abaixo :</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/05/image.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb.png" alt="image" width="240" height="171" /></a> <a href="http://www.zezologs.org/wp-content/uploads/2008/05/image1.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb1.png" alt="image" width="240" height="171" /></a> <a href="http://www.zezologs.org/wp-content/uploads/2008/05/image2.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb2.png" alt="image" width="240" height="171" /></a></p>
<p>Estes passos, finalizam a parte da configuração, após isso, o NUnit estará devidamente integrado ao Visual Studio, você pode fazer o teste tentando chamar alguns de seus métodos, e verá que o VS irá reconhecê-los e exibir-los na lista de opções (auxílo) que o VS fornece.</p>
<p><strong>Escrita do Programa</strong></p>
<p>Fiz um programa bem simples, de conversão de moedas, para exemplificar o uso do NUnit, adicione o seguinte código ao seu projeto:<br />
[sourcecode language='c#']<br />
using System;</p>
<p>namespace code<br />
{<br />
public class Codigo001<br />
{<br />
public static double p_real = 0;<br />
public static double p_cotacao = 0;<br />
public static double p_resultado = 0;<br />
public static void cotacao()<br />
{<br />
double p_real, p_cotacao, p_resultado;<br />
Console.WriteLine(&#8220;valor em real?&#8221;);<br />
p_real = Convert.ToDouble(Console.ReadLine());<br />
Console.WriteLine(&#8220;cotação do dollar?&#8221;);<br />
p_cotacao = Convert.ToDouble(Console.ReadLine());<br />
p_resultado = p_cotacao * p_real;<br />
Console.WriteLine(&#8220;Valores informados:\n\nValor em real: R${0}\nPreço da cotação do dollar: U${1}\n\nValor informado em dollar é U${2}&#8221;, p_real, p_cotacao, p_real * p_cotacao);<br />
Console.ReadLine();<br />
}</p>
<p>static void Main()<br />
{</p>
<p>cotacao();</p>
<p>}</p>
<p>}</p>
<p>}<br />
[/sourcecode]<br />
Observe que neste código, bem simples, não existe interação alguma com o NUnit, que ocorerá na próxima parte.</p>
<p><strong>Escrita do Teste</strong></p>
<p>Agora chegou o &#8220;core&#8221; dos testes, é nesta parte onde você irá escrever o código do seu teste, copie e cole o código abaixo em um codefile (.cs) diferente do código escrito acima.<br />
[sourcecode language='c#']<br />
using System;<br />
using NUnit.Framework;</p>
<p>namespace code<br />
{<br />
[TestFixture]<br />
public class Testes<br />
{<br />
[Test]<br />
public void CT001()<br />
{<br />
Codigo001.p_real = 5;<br />
Codigo001.p_cotacao = 5;<br />
Codigo001.p_resultado = Codigo001.p_real * Codigo001.p_cotacao;<br />
Assert.AreEqual(25, Codigo001.p_resultado);</p>
<p>}</p>
<p>}</p>
<p>}</p>
<p>[/sourcecode]<br />
Vejamos o que torna o código acima, interpretável ao NUnit:</p>
<p><strong>1)</strong> O pacote framework do NUnit foi incluido/incorporado a este code file, através do using <em>NUnit.Framework;</em><br />
<strong>2)</strong> [TestFixture] esta tag informa que a classe a seguir, irá conter um ou mais testes;<br />
<strong>3)</strong> [Test] esta tag informa a presença de um teste a seguir;<br />
<strong>4)</strong> Usando o <a href="http://www.nunit.org/index.php?p=equalityAsserts&amp;r=2.2.10">assertion de igualdade</a> <strong>Assert.AreEqual(25, Codigo001.p_resultado), </strong>o NUnit verificará se o resultado do teste está correto, neste caso ele irá verificar se 25 conicide com o resultado da variável <strong>Codigo001.p_resultado</strong>.</p>
<p>Compile tudo e salve.</p>
<p><strong>Execução no NUnit</strong></p>
<p>Agora vamos executar este código no NUnit, selecione a opção &#8220;Open Project&#8221; e selecione o aquivo &#8220;Testes.exe&#8221; ou o nome que você deu ao seu projeto. Observe que ao abrir o .exe o NUnit identificará todos métodos que estão com a tag [Test], no nosso caso apenas 01:</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/05/image3.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb3.png" alt="image" width="240" height="171" /></a></p>
<p>Agora pressione &#8220;Run&#8221; e verá que teste irá passar.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/05/image4.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb4.png" alt="image" width="240" height="160" /></a></p>
<p>Teste também se o teste falha, no código do teste, altere a linha:<br />
[sourcecode language='c#']<br />
if (Codigo001.p_resultado == 25)<br />
[/sourcecode]<br />
para<br />
[sourcecode language='c#']<br />
if (Codigo001.p_resultado == 15)<br />
[/sourcecode]<br />
o teste irá falhar, pois o cálculo, junto com os parâmetros infornados devem retornar 25, observe:<br />
[sourcecode language='c#']<br />
Codigo001.p_real = 5;<br />
Codigo001.p_cotacao = 5;<br />
Codigo001.p_resultado = Codigo001.p_real * Codigo001.p_cotacao;<br />
[/sourcecode]<br />
O NUnit é carente nos relatórios, pois a única forma que vi ate agora é exportar em um xml, se alguêm souber de alguma outra forma, por favor me avisem, enquanto isso irei procurando em paralelo <img src='http://www.zezologs.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Bem, é isso, como podem ver, a configuração e a execução dos testes são bastante simples, quanto a eficiência dos testes, isso vai depender muito do quão bom o engenheiro de testes é, em observar cenários apartir do código disponibilizado, e isso acontece aos poucos, no cenário abordado neste post, existem vários outros pontos a serem testados, mas apenas 1 foi exemplificado.</p>
<br><hr /><h2>comentários</h2><li><a href="http://www.zezologs.org/blog/testes-unitrios-nunit-c/">segunda-feira, maio 26, 2008</a>, <a href='http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/' rel='external nofollow' class='url'>Testes Unit&aacute;rios com componente do .NET | ...zezologs</a> comentou: [...] A &#250;ltima PoC que realizei e publiquei aqui no blog foi no uso do NUnit. [...]</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-nunit-c/">quarta-feira, maio 28, 2008</a>, <a href='http://www.zezologs.org/blog/testes-unitrios-com-csunit/' rel='external nofollow' class='url'>Testes Unit&aacute;rios com csUnit | ...zezologs</a> comentou: [...] Devido a esta razão nao vou mostrar o código do teste novamente, pois vocês pode vê-lo aqui. [...]</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-nunit-c/">terça-feira, junho 3, 2008</a>, <a href='http://www.zezologs.org/blog/executando-testes-com-o-msbuild/' rel='external nofollow' class='url'>Executando Testes com o MSbuild | ...zezologs</a> comentou: [...] Proseguindo&#8230;usarei o mesmo código que venho utilizando nos exemplos passados em &#8220;Testes Unitários com csUnit&#8220;, &#8220;Testes Unitários com componente do .NET&#8221; e &#8220;Testes Unitários: NUnit &amp; C#&#8220;. [...]</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-nunit-c/">terça-feira, junho 10, 2008</a>, <a href='http://www.via6.com/topico.php?tid=188659' rel='external nofollow' class='url'>Eudes via Rec6</a> comentou: <strong>Testes Unitários: NUnit &amp; C# | ...zezologs...</strong>

(para os testers de plantão) Integrando o NUnit com o C# para a realização de testes unitários...</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-nunit-c/">terça-feira, fevereiro 2, 2010</a>, fernando comentou: Muito bom...

Irá me ajudar de mais!

;D</li><br><hr /><h2>leia mais...</h2><ul><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-csunit/" rel="bookmark" title="Permanent Link: Testes Unit&aacute;rios com csUnit">Testes Unit&aacute;rios com csUnit</a></li><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/" rel="bookmark" title="Permanent Link: Testes Unit&aacute;rios com componente do .NET">Testes Unit&aacute;rios com componente do .NET</a></li><li><a href="http://www.zezologs.org/blog/executando-testes-com-o-msbuild/" rel="bookmark" title="Permanent Link: Executando Testes com o MSBuild">Executando Testes com o MSBuild</a></li><li><a href="http://www.zezologs.org/blog/template-de-relatrio-de-testes-do-vs/" rel="bookmark" title="Permanent Link: Template de Relatório de Testes do VS">Template de Relatório de Testes do VS</a></li><li><a href="http://www.zezologs.org/blog/gerando-relatrio-dos-testes-unitrios-a-partir-do-trx/" rel="bookmark" title="Permanent Link: Gerando Relat&oacute;rio dos Testes Unit&aacute;rios a partir do .trx">Gerando Relat&oacute;rio dos Testes Unit&aacute;rios a partir do .trx</a></li></ul><br>
<div align="center"><font face="Tahoma"><font color="#999999" face="Tahoma">Copyright &copy; 
    2007-2008 zezologs.org <strong>|</strong> 
    Todos os direitos reservados <strong>|</strong>
    <font color="#637c32"><strong></strong></font></font><font face="Tahoma"><a href="http://www.zezologs.org/blog/mobile/">Acessibidade</a> 
    <font color="#637c32"><strong>|</strong></font></font> <font face="Tahoma"><a href="http://www.wordpress.com">WordPress 
    </a> </font> <p>Estou implementando testes automáticos em um novo projeto aqui no <a href="http://www.cesar.org.br" target="_blank">cesar</a>, antes de inicar de fato as atividades, estou realizando alguns PoC´s para achar a melhor forma de realizar estes testes unitários automáticos. Andei dando uma busca por alguns frameworks que suportassem o desenvolmento de testes unitários automáticos para C#, de cara achei o <a href="http://www.nunit.org/" target="_blank">NUnit</a>, ele é free e aparentemente bastante usado.</p>
<p>Irei tentar, aos poucos detalhar minha experiência nesta PoC, tanto no uso do NUnit em conjunto com o C#, quanto no uso de outras ferramentas em conjunto também com o C# para a criação de testes automáticos. Minhas dificuldades, descobertas e impressões ficarão registradas aqui.</p>
<p>Bem antes de tudo, o ambiente que estou utilizando é o seguinte: <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=94de806b-e1a1-4282-abc5-1f7347782553&amp;DisplayLang=en" target="_blank">Visual Studio 2008</a> e o <a href="http://www.nunit.org/index.php?p=download" target="_blank">NUnit</a>, após a instalação do itens acima, é so por a mão na massa.</p>
<p></p>
<p>Irei dividir em 4 partes distintas este processo inicial: Configuração, Escrita do Programa, Escrita do Teste, Execução no NUnit, irei explicar as 4 partes de uma forma mais macro, não irei entrar nos detalhes, pois não é o foco aqui, se adotasse esta abordagem esse post iria ser bem longo <img src='http://www.zezologs.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Configuração</strong></p>
<p>Com o Visual Studio 2008 aberto, no Solutions Explorer pressione o botão direito do mouse e escolha &#8220;Add Reference&#8221;, logo após em &#8220;Browse&#8221; informe a localização da <em>nunit.framework.dll</em> do NUnit, que deverá estar no local onde você escolheu instalá-lo, como mostrado na figura abaixo, depois da a indicação, observe que no Solutions Explorer ele irá exibir as referências do NUnit, observe novamente nas imagens abaixo :</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/05/image.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb.png" alt="image" width="240" height="171" /></a> <a href="http://www.zezologs.org/wp-content/uploads/2008/05/image1.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb1.png" alt="image" width="240" height="171" /></a> <a href="http://www.zezologs.org/wp-content/uploads/2008/05/image2.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb2.png" alt="image" width="240" height="171" /></a></p>
<p>Estes passos, finalizam a parte da configuração, após isso, o NUnit estará devidamente integrado ao Visual Studio, você pode fazer o teste tentando chamar alguns de seus métodos, e verá que o VS irá reconhecê-los e exibir-los na lista de opções (auxílo) que o VS fornece.</p>
<p><strong>Escrita do Programa</strong></p>
<p>Fiz um programa bem simples, de conversão de moedas, para exemplificar o uso do NUnit, adicione o seguinte código ao seu projeto:<br />
[sourcecode language='c#']<br />
using System;</p>
<p>namespace code<br />
{<br />
public class Codigo001<br />
{<br />
public static double p_real = 0;<br />
public static double p_cotacao = 0;<br />
public static double p_resultado = 0;<br />
public static void cotacao()<br />
{<br />
double p_real, p_cotacao, p_resultado;<br />
Console.WriteLine(&#8220;valor em real?&#8221;);<br />
p_real = Convert.ToDouble(Console.ReadLine());<br />
Console.WriteLine(&#8220;cotação do dollar?&#8221;);<br />
p_cotacao = Convert.ToDouble(Console.ReadLine());<br />
p_resultado = p_cotacao * p_real;<br />
Console.WriteLine(&#8220;Valores informados:\n\nValor em real: R${0}\nPreço da cotação do dollar: U${1}\n\nValor informado em dollar é U${2}&#8221;, p_real, p_cotacao, p_real * p_cotacao);<br />
Console.ReadLine();<br />
}</p>
<p>static void Main()<br />
{</p>
<p>cotacao();</p>
<p>}</p>
<p>}</p>
<p>}<br />
[/sourcecode]<br />
Observe que neste código, bem simples, não existe interação alguma com o NUnit, que ocorerá na próxima parte.</p>
<p><strong>Escrita do Teste</strong></p>
<p>Agora chegou o &#8220;core&#8221; dos testes, é nesta parte onde você irá escrever o código do seu teste, copie e cole o código abaixo em um codefile (.cs) diferente do código escrito acima.<br />
[sourcecode language='c#']<br />
using System;<br />
using NUnit.Framework;</p>
<p>namespace code<br />
{<br />
[TestFixture]<br />
public class Testes<br />
{<br />
[Test]<br />
public void CT001()<br />
{<br />
Codigo001.p_real = 5;<br />
Codigo001.p_cotacao = 5;<br />
Codigo001.p_resultado = Codigo001.p_real * Codigo001.p_cotacao;<br />
Assert.AreEqual(25, Codigo001.p_resultado);</p>
<p>}</p>
<p>}</p>
<p>}</p>
<p>[/sourcecode]<br />
Vejamos o que torna o código acima, interpretável ao NUnit:</p>
<p><strong>1)</strong> O pacote framework do NUnit foi incluido/incorporado a este code file, através do using <em>NUnit.Framework;</em><br />
<strong>2)</strong> [TestFixture] esta tag informa que a classe a seguir, irá conter um ou mais testes;<br />
<strong>3)</strong> [Test] esta tag informa a presença de um teste a seguir;<br />
<strong>4)</strong> Usando o <a href="http://www.nunit.org/index.php?p=equalityAsserts&amp;r=2.2.10">assertion de igualdade</a> <strong>Assert.AreEqual(25, Codigo001.p_resultado), </strong>o NUnit verificará se o resultado do teste está correto, neste caso ele irá verificar se 25 conicide com o resultado da variável <strong>Codigo001.p_resultado</strong>.</p>
<p>Compile tudo e salve.</p>
<p><strong>Execução no NUnit</strong></p>
<p>Agora vamos executar este código no NUnit, selecione a opção &#8220;Open Project&#8221; e selecione o aquivo &#8220;Testes.exe&#8221; ou o nome que você deu ao seu projeto. Observe que ao abrir o .exe o NUnit identificará todos métodos que estão com a tag [Test], no nosso caso apenas 01:</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/05/image3.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb3.png" alt="image" width="240" height="171" /></a></p>
<p>Agora pressione &#8220;Run&#8221; e verá que teste irá passar.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/05/image4.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/05/image-thumb4.png" alt="image" width="240" height="160" /></a></p>
<p>Teste também se o teste falha, no código do teste, altere a linha:<br />
[sourcecode language='c#']<br />
if (Codigo001.p_resultado == 25)<br />
[/sourcecode]<br />
para<br />
[sourcecode language='c#']<br />
if (Codigo001.p_resultado == 15)<br />
[/sourcecode]<br />
o teste irá falhar, pois o cálculo, junto com os parâmetros infornados devem retornar 25, observe:<br />
[sourcecode language='c#']<br />
Codigo001.p_real = 5;<br />
Codigo001.p_cotacao = 5;<br />
Codigo001.p_resultado = Codigo001.p_real * Codigo001.p_cotacao;<br />
[/sourcecode]<br />
O NUnit é carente nos relatórios, pois a única forma que vi ate agora é exportar em um xml, se alguêm souber de alguma outra forma, por favor me avisem, enquanto isso irei procurando em paralelo <img src='http://www.zezologs.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Bem, é isso, como podem ver, a configuração e a execução dos testes são bastante simples, quanto a eficiência dos testes, isso vai depender muito do quão bom o engenheiro de testes é, em observar cenários apartir do código disponibilizado, e isso acontece aos poucos, no cenário abordado neste post, existem vários outros pontos a serem testados, mas apenas 1 foi exemplificado.</p>
<br><hr /><h2>comentários</h2><li><a href="http://www.zezologs.org/blog/testes-unitrios-nunit-c/">segunda-feira, maio 26, 2008</a>, <a href='http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/' rel='external nofollow' class='url'>Testes Unit&aacute;rios com componente do .NET | ...zezologs</a> comentou: [...] A &#250;ltima PoC que realizei e publiquei aqui no blog foi no uso do NUnit. [...]</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-nunit-c/">quarta-feira, maio 28, 2008</a>, <a href='http://www.zezologs.org/blog/testes-unitrios-com-csunit/' rel='external nofollow' class='url'>Testes Unit&aacute;rios com csUnit | ...zezologs</a> comentou: [...] Devido a esta razão nao vou mostrar o código do teste novamente, pois vocês pode vê-lo aqui. [...]</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-nunit-c/">terça-feira, junho 3, 2008</a>, <a href='http://www.zezologs.org/blog/executando-testes-com-o-msbuild/' rel='external nofollow' class='url'>Executando Testes com o MSbuild | ...zezologs</a> comentou: [...] Proseguindo&#8230;usarei o mesmo código que venho utilizando nos exemplos passados em &#8220;Testes Unitários com csUnit&#8220;, &#8220;Testes Unitários com componente do .NET&#8221; e &#8220;Testes Unitários: NUnit &amp; C#&#8220;. [...]</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-nunit-c/">terça-feira, junho 10, 2008</a>, <a href='http://www.via6.com/topico.php?tid=188659' rel='external nofollow' class='url'>Eudes via Rec6</a> comentou: <strong>Testes Unitários: NUnit &amp; C# | ...zezologs...</strong>

(para os testers de plantão) Integrando o NUnit com o C# para a realização de testes unitários...</li><br><li><a href="http://www.zezologs.org/blog/testes-unitrios-nunit-c/">terça-feira, fevereiro 2, 2010</a>, fernando comentou: Muito bom...

Irá me ajudar de mais!

;D</li><br><hr /><h2>leia mais...</h2><ul><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-csunit/" rel="bookmark" title="Permanent Link: Testes Unit&aacute;rios com csUnit">Testes Unit&aacute;rios com csUnit</a></li><li><a href="http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/" rel="bookmark" title="Permanent Link: Testes Unit&aacute;rios com componente do .NET">Testes Unit&aacute;rios com componente do .NET</a></li><li><a href="http://www.zezologs.org/blog/executando-testes-com-o-msbuild/" rel="bookmark" title="Permanent Link: Executando Testes com o MSBuild">Executando Testes com o MSBuild</a></li><li><a href="http://www.zezologs.org/blog/template-de-relatrio-de-testes-do-vs/" rel="bookmark" title="Permanent Link: Template de Relatório de Testes do VS">Template de Relatório de Testes do VS</a></li><li><a href="http://www.zezologs.org/blog/gerando-relatrio-dos-testes-unitrios-a-partir-do-trx/" rel="bookmark" title="Permanent Link: Gerando Relat&oacute;rio dos Testes Unit&aacute;rios a partir do .trx">Gerando Relat&oacute;rio dos Testes Unit&aacute;rios a partir do .trx</a></li></ul><br>
<div align="center"><font face="Tahoma"><font color="#999999" face="Tahoma">Copyright &copy; 
    2007-2008 zezologs.org <strong>|</strong> 
    Todos os direitos reservados <strong>|</strong>
    <font color="#637c32"><strong></strong></font></font><font face="Tahoma"><a href="http://www.zezologs.org/blog/mobile/">Acessibidade</a> 
    <font color="#637c32"><strong>|</strong></font></font> <font face="Tahoma"><a href="http://www.wordpress.com">WordPress 
    </a> </font> ]]></description>
		<wfw:commentRss>http://www.zezologs.org/blog/testes-unitrios-nunit-c/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

