<?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; msbuild</title>
	<atom:link href="http://www.zezologs.org/blog/tag/msbuild/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>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>Executando Testes com o MSBuild</title>
		<link>http://www.zezologs.org/blog/executando-testes-com-o-msbuild/</link>
		<comments>http://www.zezologs.org/blog/executando-testes-com-o-msbuild/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 19:41:20 +0000</pubDate>
		<dc:creator>eudescosta</dc:creator>
				<category><![CDATA[Automação de Testes]]></category>
		<category><![CDATA[Prevenção de Defeitos]]></category>
		<category><![CDATA[msbuild]]></category>

		<guid isPermaLink="false">http://www.zezologs.org/blog/executando-testes-com-o-msbuild/</guid>
		<description><![CDATA[<p>Antes de qualquer coisa, vamos nos abstrair pelo menos nos próximos paragráfos, dos limites existentes entre os papéis de engenheiro de testes e CM ou líder técnico, e vamos focar onde quero chegar, <strong>previnir ou achar erros mais cedo</strong>.</p>
<p>Como quem acompanha o blog deve ter notado, tenho realizado alguns PoC´s para um novo projeto que se inicia aqui no trabalho, semana passada fiz várias avaliações de ferramentas para testes unitários e avaliei dentre outras coisas a sua integração com a IDE de desenvolvimento utilizada, Visual Studio 2008, pois bem, vamos ao que interessa.</p>
<p>A avaliação que fiz desta vez, foi sobre o <a href="http://msdn.microsoft.com/en-us/library/0k6kkbsd.aspx">MSbuild</a>, uma ferramenta da Microsoft para geração de builds, o uso do MSBuild é bastante amplo, e não vou abordar todas as aplicações desta ferramenta, minha intenção é apenas mostrar o quão simples é (muito mais do que se imagina) rodar seus testes com o MSBuild, de forma que se <strong>01 (um) teste sequer falhar</strong> o processo de geração de build é <strong>interrompido</strong>.</p>
<p></p>
<p>Bem, se você  usa o Visual Studio Professional 2008 o msbuild já vem junto com a instalação, mas ele geramlente fica na pasta <strong>&#8220;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727&#8243;</strong> o que faz com que ao digitar <strong>&#8220;MSBuild.exe&#8221; </strong>na pasta de seu projeto, o Windows não reconheça, pra resolver isto é simples apenas adicione o caminho da pasta acima, nas váriaveis de ambiente em <strong>&#8220;System Properties&#8221;</strong> &gt;&gt; <strong>&#8220;Advanced&#8221;</strong> &gt;&gt; <strong>&#8220;Environment Variables&#8221;</strong> em <strong>&#8220;System Variables&#8221;</strong> procure pela entrada PATH, e adicione o caminho acima.</p>
<p>Proseguindo&#8230;usarei o mesmo código que venho utilizando nos exemplos passados em &#8220;<a href="http://www.zezologs.org/blog/testes-unitrios-com-csunit/">Testes Unitários com csUnit</a>&#8220;, &#8220;<a href="http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/">Testes Unitários com componente do .NET</a>&#8221; e &#8220;<a href="http://www.zezologs.org/blog/testes-unitrios-nunit-c/">Testes Unitários: NUnit &amp; C#</a>&#8220;.</p>
<p>Agora vamos editar o arquivo do projeto, .cproj, e incluir ativdades <strong>postbuild</strong>, ou seja, quando o MSBuild finalizar o processo de geralção de build ele irá executar a atividade especificada.</p>
<p><strong>1º Forma</strong></p>
<p>Desative o projeto</p>
<p><a rel="lightbox" href="http://www.zezologs.org/wp-content/uploads/2008/06/image.png"><img src="http://www.zezologs.org/wp-content/uploads/2008/06/image-thumb.png" alt="image" width="240" height="171" /></a> <a href="http://www.zezologs.org/wp-content/uploads/2008/06/image1.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/06/image-thumb1.png" alt="image" width="240" height="171" /></a></p>
<p>Edite o .cproj</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/06/image2.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/06/image-thumb2.png" alt="image" width="240" height="171" /></a></p>
<p>No arquivo .cproj que o VS abrirá, acresente a linha a seguir no final do arquivo<br />
[sourcecode language='xml']<br />
<PropertyGroup><br />
<PostBuildEvent>mstest /testcontainer:.NETTests.dll</PostBuildEvent><br />
</PropertyGroup><br />
[/sourcecode]<br />
<strong>2º Forma</strong></p>
<p>Selecione as propriedades do projeto.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/06/image3.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/06/image-thumb3.png" alt="image" width="240" height="171" /></a></p>
<p>Em build events inclua a linha &#8220;mstest /testcontainer:.NETTests.dll&#8221; como mostrado abaixo</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/06/image4.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/06/image-thumb4.png" alt="image" width="240" height="171" /></a></p>
<p>Salve tudo e reative o projeto.</p>
<p>Abra o commmand prompt, e vá até onde está o projeto que você quer gerar a build e digite a palavrinha mágica <strong>msbuild. </strong>Ele irá iniciar o processo de geração de build, e deverá exibir algo como a imagem abaixo:</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/06/image5.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/06/image-thumb5.png" alt="image" width="240" height="171" /></a></p>
<p>Caminhando agora a parte que interessa, olhem para os logs do MSBuild abaixo que chamarei de CASO01 e CASO02</p>
<p><strong>CASO01</strong></p>
<p><span style="font-family: Courier New; font-size: x-small;"> Loading .NETTests.dll&#8230;<br />
Starting execution&#8230;</span></p>
<p><span style="font-family: Courier New; font-size: x-small;"> Results               Top Level Tests<br />
&#8212;&#8212;-               &#8212;&#8212;&#8212;&#8212;&#8212;<br />
Failed                NETTests.TestesCodigo001.Looping<br />
Failed                NETTests.TestesCodigo001.NegativeTest<br />
Failed                NETTests.TestesCodigo001.SendingStringToCotacao<br />
Failed                NETTests.TestesCodigo001.SendingStringToReal<br />
Passed                NETTests.TestesCodigo001.SuccessTest<br />
1/5 test(s) Passed, 4 Failed</span></p>
<p><span style="font-family: Courier New; font-size: x-small;"> Summary<br />
&#8212;&#8212;-<br />
Test Run Failed.<br />
Failed  4<br />
Passed  1<br />
&#8212;&#8212;&#8212;<br />
Total   5</span></p>
<p><span style="font-family: Courier New; font-size: x-small;"><br />
Results file: D:\Visual Studio Proejcts 2008\Testes\.NETTests\bin\Debug\<br />
TestResults\ejoc_ROMANA 2008-06-03 14_47_48.trx<br />
Run Configuration: Default Run Configuration<br />
</span><span style="font-family: Courier New; font-size: x-small;"> Done Building Project &#8220;D:\Visual Studio Proejcts 2008 Testes\Testes.sln&#8221; (default targets) &#8211;FAILED.</span></p>
<p><span style="font-family: Courier New; color: #ff0000; font-size: x-small;"><strong>Build FAILED.</strong></span></p>
<p><strong></strong></p>
<p><strong>CASO02</strong></p>
<p><span style="font-family: Courier New; font-size: x-small;"> Loading .NETTests.dll&#8230;<br />
Starting execution&#8230;</span></p>
<p><span style="font-family: Courier New; font-size: x-small;"> Results               Top Level Tests<br />
&#8212;&#8212;-               &#8212;&#8212;&#8212;&#8212;&#8212;<br />
Passed                NETTests.TestesCodigo001.SuccessTest<br />
1/1 test(s) Passed</span></p>
<p><span style="font-family: Courier New; font-size: x-small;"> Summary<br />
&#8212;&#8212;-<br />
Test Run Completed.<br />
Passed  1<br />
&#8212;&#8212;&#8212;<br />
Total   1</span></p>
<p><span style="font-family: Courier New; font-size: x-small;"><br />
Results file:D:\Visual Studio Proejcts 2008 Testes\.NETTests\bin\Debug\<br />
TestResults\ejoc_ROMANA 2008-06-03 14_51_39.trx<br />
Run Configuration: Default Run Configuration<br />
Done Building Project &#8220;D:\Visual Studio Proejcts 2008\Testes\.NETTests\.NETTests.csproj&#8221; (default targets).</span></p>
<p><span style="font-family: Courier New; font-size: x-small;">Done Building Project &#8220;D:\Visual Studio Proejcts 2008\Testes\Testes.sln&#8221; (default targets).</span></p>
<p><strong><span style="font-family: Courier New; color: #008000; font-size: x-small;">Build succeeded.</span></strong></p>
<p><strong></strong></p>
<p>Notaram a diferença? no CASO01 a build nem foi gerada pois 4 testes falharam, já no CASO02 a build foi gerada pois os testes passaram.</p>
<p>Notem como o procedimento é simples e os resultados são fantásticos, o retorno disso é evidente:</p>
<p>1.  A correção da CR é bem mais produtiva, hava vista que o bug está &#8220;fresquinho&#8221; na cabeça de quem codificou;</p>
<p>2. Overhead de testes reduzido pois isso irá diminuir consideravelmente o esforço de testes funcionais, realizados mais a frente.</p>
<p>e tem muito mais&#8230;</p>
<p>Bem é isso, vejam como pode ser mais simples do que as vezes imaginamos, previnir que erros aconteçam <img src='http://www.zezologs.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<br><hr /><h2>comentários</h2><li><a href="http://www.zezologs.org/blog/executando-testes-com-o-msbuild/">segunda-feira, junho 9, 2008</a>, <a href='http://www.zezologs.org/blog/tasks-do-msbuld-com-o-msbuildtasks/' rel='external nofollow' class='url'>Tasks do MSBuild com o msbuildtasks | ...zezologs</a> comentou: [...] implementação destas tasks, é feita como falei em Executando Testes com o MSbuild, utilizando o arquivo do [...]</li><br><hr /><h2>leia mais...</h2><ul><li><a href="http://www.zezologs.org/blog/tasks-do-msbuild-com-o-msbuildtasks/" rel="bookmark" title="Permanent Link: Tasks do MSBuild com o msbuildtasks">Tasks do MSBuild com o msbuildtasks</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/eficincia-da-equipe-de-testes/" rel="bookmark" title="Permanent Link: Efici&ecirc;ncia da Equipe de Testes">Efici&ecirc;ncia da Equipe de Testes</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/automao-e-cdigos-no-testveis/" rel="bookmark" title="Permanent Link: Automa&ccedil;&atilde;o e C&oacute;digos N&atilde;o Test&aacute;veis">Automa&ccedil;&atilde;o e C&oacute;digos N&atilde;o Test&aacute;veis</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>Antes de qualquer coisa, vamos nos abstrair pelo menos nos próximos paragráfos, dos limites existentes entre os papéis de engenheiro de testes e CM ou líder técnico, e vamos focar onde quero chegar, <strong>previnir ou achar erros mais cedo</strong>.</p>
<p>Como quem acompanha o blog deve ter notado, tenho realizado alguns PoC´s para um novo projeto que se inicia aqui no trabalho, semana passada fiz várias avaliações de ferramentas para testes unitários e avaliei dentre outras coisas a sua integração com a IDE de desenvolvimento utilizada, Visual Studio 2008, pois bem, vamos ao que interessa.</p>
<p>A avaliação que fiz desta vez, foi sobre o <a href="http://msdn.microsoft.com/en-us/library/0k6kkbsd.aspx">MSbuild</a>, uma ferramenta da Microsoft para geração de builds, o uso do MSBuild é bastante amplo, e não vou abordar todas as aplicações desta ferramenta, minha intenção é apenas mostrar o quão simples é (muito mais do que se imagina) rodar seus testes com o MSBuild, de forma que se <strong>01 (um) teste sequer falhar</strong> o processo de geração de build é <strong>interrompido</strong>.</p>
<p></p>
<p>Bem, se você  usa o Visual Studio Professional 2008 o msbuild já vem junto com a instalação, mas ele geramlente fica na pasta <strong>&#8220;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727&#8243;</strong> o que faz com que ao digitar <strong>&#8220;MSBuild.exe&#8221; </strong>na pasta de seu projeto, o Windows não reconheça, pra resolver isto é simples apenas adicione o caminho da pasta acima, nas váriaveis de ambiente em <strong>&#8220;System Properties&#8221;</strong> &gt;&gt; <strong>&#8220;Advanced&#8221;</strong> &gt;&gt; <strong>&#8220;Environment Variables&#8221;</strong> em <strong>&#8220;System Variables&#8221;</strong> procure pela entrada PATH, e adicione o caminho acima.</p>
<p>Proseguindo&#8230;usarei o mesmo código que venho utilizando nos exemplos passados em &#8220;<a href="http://www.zezologs.org/blog/testes-unitrios-com-csunit/">Testes Unitários com csUnit</a>&#8220;, &#8220;<a href="http://www.zezologs.org/blog/testes-unitrios-com-componente-do-net/">Testes Unitários com componente do .NET</a>&#8221; e &#8220;<a href="http://www.zezologs.org/blog/testes-unitrios-nunit-c/">Testes Unitários: NUnit &amp; C#</a>&#8220;.</p>
<p>Agora vamos editar o arquivo do projeto, .cproj, e incluir ativdades <strong>postbuild</strong>, ou seja, quando o MSBuild finalizar o processo de geralção de build ele irá executar a atividade especificada.</p>
<p><strong>1º Forma</strong></p>
<p>Desative o projeto</p>
<p><a rel="lightbox" href="http://www.zezologs.org/wp-content/uploads/2008/06/image.png"><img src="http://www.zezologs.org/wp-content/uploads/2008/06/image-thumb.png" alt="image" width="240" height="171" /></a> <a href="http://www.zezologs.org/wp-content/uploads/2008/06/image1.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/06/image-thumb1.png" alt="image" width="240" height="171" /></a></p>
<p>Edite o .cproj</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/06/image2.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/06/image-thumb2.png" alt="image" width="240" height="171" /></a></p>
<p>No arquivo .cproj que o VS abrirá, acresente a linha a seguir no final do arquivo<br />
[sourcecode language='xml']<br />
<PropertyGroup><br />
<PostBuildEvent>mstest /testcontainer:.NETTests.dll</PostBuildEvent><br />
</PropertyGroup><br />
[/sourcecode]<br />
<strong>2º Forma</strong></p>
<p>Selecione as propriedades do projeto.</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/06/image3.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/06/image-thumb3.png" alt="image" width="240" height="171" /></a></p>
<p>Em build events inclua a linha &#8220;mstest /testcontainer:.NETTests.dll&#8221; como mostrado abaixo</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/06/image4.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/06/image-thumb4.png" alt="image" width="240" height="171" /></a></p>
<p>Salve tudo e reative o projeto.</p>
<p>Abra o commmand prompt, e vá até onde está o projeto que você quer gerar a build e digite a palavrinha mágica <strong>msbuild. </strong>Ele irá iniciar o processo de geração de build, e deverá exibir algo como a imagem abaixo:</p>
<p><a href="http://www.zezologs.org/wp-content/uploads/2008/06/image5.png" rel="lightbox"><img src="http://www.zezologs.org/wp-content/uploads/2008/06/image-thumb5.png" alt="image" width="240" height="171" /></a></p>
<p>Caminhando agora a parte que interessa, olhem para os logs do MSBuild abaixo que chamarei de CASO01 e CASO02</p>
<p><strong>CASO01</strong></p>
<p><span style="font-family: Courier New; font-size: x-small;"> Loading .NETTests.dll&#8230;<br />
Starting execution&#8230;</span></p>
<p><span style="font-family: Courier New; font-size: x-small;"> Results               Top Level Tests<br />
&#8212;&#8212;-               &#8212;&#8212;&#8212;&#8212;&#8212;<br />
Failed                NETTests.TestesCodigo001.Looping<br />
Failed                NETTests.TestesCodigo001.NegativeTest<br />
Failed                NETTests.TestesCodigo001.SendingStringToCotacao<br />
Failed                NETTests.TestesCodigo001.SendingStringToReal<br />
Passed                NETTests.TestesCodigo001.SuccessTest<br />
1/5 test(s) Passed, 4 Failed</span></p>
<p><span style="font-family: Courier New; font-size: x-small;"> Summary<br />
&#8212;&#8212;-<br />
Test Run Failed.<br />
Failed  4<br />
Passed  1<br />
&#8212;&#8212;&#8212;<br />
Total   5</span></p>
<p><span style="font-family: Courier New; font-size: x-small;"><br />
Results file: D:\Visual Studio Proejcts 2008\Testes\.NETTests\bin\Debug\<br />
TestResults\ejoc_ROMANA 2008-06-03 14_47_48.trx<br />
Run Configuration: Default Run Configuration<br />
</span><span style="font-family: Courier New; font-size: x-small;"> Done Building Project &#8220;D:\Visual Studio Proejcts 2008 Testes\Testes.sln&#8221; (default targets) &#8211;FAILED.</span></p>
<p><span style="font-family: Courier New; color: #ff0000; font-size: x-small;"><strong>Build FAILED.</strong></span></p>
<p><strong></strong></p>
<p><strong>CASO02</strong></p>
<p><span style="font-family: Courier New; font-size: x-small;"> Loading .NETTests.dll&#8230;<br />
Starting execution&#8230;</span></p>
<p><span style="font-family: Courier New; font-size: x-small;"> Results               Top Level Tests<br />
&#8212;&#8212;-               &#8212;&#8212;&#8212;&#8212;&#8212;<br />
Passed                NETTests.TestesCodigo001.SuccessTest<br />
1/1 test(s) Passed</span></p>
<p><span style="font-family: Courier New; font-size: x-small;"> Summary<br />
&#8212;&#8212;-<br />
Test Run Completed.<br />
Passed  1<br />
&#8212;&#8212;&#8212;<br />
Total   1</span></p>
<p><span style="font-family: Courier New; font-size: x-small;"><br />
Results file:D:\Visual Studio Proejcts 2008 Testes\.NETTests\bin\Debug\<br />
TestResults\ejoc_ROMANA 2008-06-03 14_51_39.trx<br />
Run Configuration: Default Run Configuration<br />
Done Building Project &#8220;D:\Visual Studio Proejcts 2008\Testes\.NETTests\.NETTests.csproj&#8221; (default targets).</span></p>
<p><span style="font-family: Courier New; font-size: x-small;">Done Building Project &#8220;D:\Visual Studio Proejcts 2008\Testes\Testes.sln&#8221; (default targets).</span></p>
<p><strong><span style="font-family: Courier New; color: #008000; font-size: x-small;">Build succeeded.</span></strong></p>
<p><strong></strong></p>
<p>Notaram a diferença? no CASO01 a build nem foi gerada pois 4 testes falharam, já no CASO02 a build foi gerada pois os testes passaram.</p>
<p>Notem como o procedimento é simples e os resultados são fantásticos, o retorno disso é evidente:</p>
<p>1.  A correção da CR é bem mais produtiva, hava vista que o bug está &#8220;fresquinho&#8221; na cabeça de quem codificou;</p>
<p>2. Overhead de testes reduzido pois isso irá diminuir consideravelmente o esforço de testes funcionais, realizados mais a frente.</p>
<p>e tem muito mais&#8230;</p>
<p>Bem é isso, vejam como pode ser mais simples do que as vezes imaginamos, previnir que erros aconteçam <img src='http://www.zezologs.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<br><hr /><h2>comentários</h2><li><a href="http://www.zezologs.org/blog/executando-testes-com-o-msbuild/">segunda-feira, junho 9, 2008</a>, <a href='http://www.zezologs.org/blog/tasks-do-msbuld-com-o-msbuildtasks/' rel='external nofollow' class='url'>Tasks do MSBuild com o msbuildtasks | ...zezologs</a> comentou: [...] implementação destas tasks, é feita como falei em Executando Testes com o MSbuild, utilizando o arquivo do [...]</li><br><hr /><h2>leia mais...</h2><ul><li><a href="http://www.zezologs.org/blog/tasks-do-msbuild-com-o-msbuildtasks/" rel="bookmark" title="Permanent Link: Tasks do MSBuild com o msbuildtasks">Tasks do MSBuild com o msbuildtasks</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/eficincia-da-equipe-de-testes/" rel="bookmark" title="Permanent Link: Efici&ecirc;ncia da Equipe de Testes">Efici&ecirc;ncia da Equipe de Testes</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/automao-e-cdigos-no-testveis/" rel="bookmark" title="Permanent Link: Automa&ccedil;&atilde;o e C&oacute;digos N&atilde;o Test&aacute;veis">Automa&ccedil;&atilde;o e C&oacute;digos N&atilde;o Test&aacute;veis</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/executando-testes-com-o-msbuild/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

