Então finalmente aconteceu: precisei aprender .net direito para um projeto. No caso, o requisito do cliente foi o de que tudo deveria ser desenvolvido em VB.net. Sendo assim, busquei material para aprender DIREITO esta linguagem (recomendo o livro “Pro VB 2008 and the .NET 3.5 Platform” de Andrew Troelsen (que fala MUITA merda sobre Java, mas a parte sobre .net é fantástica)).
Pois bem: minha maior dificuldade inicial foi trabalhar com algum framework de testes unitários (sou viciado e considero fundamental para que eu possa progredir no aprendizado da linguagem). Como terei de usar o Visual Basic 2008 Express Edition, tive de me virar por conta própria (o Visual Studio pago já oferece suporte integrado a frameworks de testes unitários pelo qu epude ver). Há duas opções de procedimento a serem adotadas. Antes de tratá-las individualmente, acho importante tratar do que é comum a ambas.
1. Baixe a última versão do NUnit em http://www.nunit.org e a instale em seu PC
2. Na sua solução, adicione um novo projeto que conterá todos os seus testes unitários. Adicione duas referências a este projeto: nunit.framework na aba “.NET” e o outro projeto que faz parte da sua solução na aba “Projects”
3. Escreva seus testes unitários. A documentação oficial do JUnit é excelente.
Agora às duas alternativas: a do preguiçoso que trabalha mais e a que te permite depurar seus testes unitários
Alternativa do preguiçoso
É simples: no menu “Tools” do VB.net Express Edition selecione a opção “External Tools…”. Você adicionará uma ferramenta à mais para a sua IDE. Simplesmente preencha o formulário tal como na imagem abaixo:
Command deverá possuir o caminho completo até o executável nunit.exe em seu PC.
E Arguments deverá possuir o texto exatamente como digitei. Assim, o programa nunit.exe será executado na versão compilada do seu projeto que contém os testes unitários e, quando quiser ver se tudo está ok, basta ir ao menu “Tools” e clicar sobre a opção NUnit. Mas lembre-se de que ao clicar nesta opção do menu, o projeto que contém seus testes unitários deverá estar selecionado. Caso contrário, o NUnit irá lhe dizer que não encontrou teste algum em seu assembly.
O legal desta abordagem é que pode ser aplicada a qualquer projeto sem que você precise adicionar qualquer configuração adicional. O problema é que não te permite depurar seus testes unitários.
Alternativa detalhada por projeto
A primeira alternativa é ótima se você não precisa depurar seu código fonte. Mas as coisas começam a ficar feias caso seja necessário depurar testes unitários, pois não será possível, pois o VB.net Express Edition não permite anexar processos ao depurador, ao contrário da versão paga. Porém não o permite apenas se estiver trabalhando pela IDE…
Para poder depurar os seus testes unitários, siga o passo a passo abaixo:
1. Se o VB.net Express Edition estiver aberto, feche-o.
2. Abra com um editor de texto qualquer o seu arquivo de projeto (tem a terminação .vbproj) que contém os seus testes unitários. Neste documento que está no formato XML, busque pela primeira tag chamada PropertyGroup e no final desta adicione as linhas abaixo:
<StartAction>Program</StartAction> <StartProgram>C:\Program Files\NUnit 2.5.5\bin\net-2.0\nunit.exe</StartProgram>
A segunda linha contém o caminho completo até a sua instalação do NUnit. Seu arquivo deverá estar similar ao trecho abaixo:
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProductVersion>9.0.30729</ProductVersion> <SchemaVersion>2.0</SchemaVersion> <ProjectGuid>{17E79D88-1181-45CB-AA60-388976791BA5}</ProjectGuid> bla bla bla E finalmente, no final desta tag o código abaixo: <strong> <StartAction>Program</StartAction> <StartProgram>C:\Program Files\NUnit 2.5.5\bin\net-2.0\nunit.exe</StartProgram></strong>
E é isto: quando for executar seu projeto pela IDE, automáticamente o NUnit será aberto e você poderá depurar seus testes quando forem executados.
E o mesmo procedimento pode ser adotado ao C# Express Edition. A diferença é apenas o arquivo a ser aberto, que terá, se não me engano, a extensão csproject.
PS: e o que estou achando do VB.net 2008 e .net em Geral? É muito legal! :)
Deixe uma resposta