Integrando o NUnit ao VB.net Express Edition 2008 (e ao C# ED também)

Integrando o NUnit ao VB.net Express Edition 2008 (e ao C# ED também) 1Entã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:

Integrando o NUnit ao VB.net Express Edition 2008 (e ao C# ED também) 2

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! :)

11 comments on “Integrando o NUnit ao VB.net Express Edition 2008 (e ao C# ED também)

  1. Flavio Alves Granato

    God forgive you! Mas cliente é cliente… fazer o que né

    Responda

    admin Reply:

    Sabe Flavio, eu costumava desta forma. Mas passado algum tempo, percebi que era perda de tempo e acabava expondo uma certa “imaturidade” profissional.

    Há muitas guerrinhas entre programadores relacionadas a linguagens e plataformas favoritas para desenvolvimento. No entanto, quando você deixa de lado estes preconceitos e DE FATO estuda aquilo que até então menosprezava, acaba crescendo E MUITO como profissional.

    A primeira coisa que pensei neste projeto foi: “putz! VB???”. Mas comprei algum material para estudar o assunto a fundo e, pra minha surpresa, encontrei diversos aspectos na linguagem/plataforma que gostaria de ver na minha plataforma favorita (no caso, a plataforma Java).

    E com relação à IDE, a experiência foi bastante interessante também, porque a idéia pré-concebida que eu tinha era a de que não conseguiria fazer quase nada com ela. Pasmei ao perceber que não vou precisar do Visual Studio durante todo o desenvolvimento do projeto!

    O simples fato de simplesmente estudar algo tão carregado de preconceitos com a mente aberta (como eu fiz) acabou expandindo demais meus horizontes. Tem sido uma experiência maravilhosa.

    Sendo assim, acho que de vez em quando é interessante deixar de lado esta postura “anti-tecnologia-x” e pular de cabeça pra ver no que dá. Nem que seja pra poder falar mal depois com o mínimo de fundamento.

    Sair da zona de conforto é, ao menos na minha opinião, a melhor maneira de crescer e verificar a própria maturidade profissional.

    Responda

    Jeorane Reply:

    A linguagem Visual Basic.NET versão 10 evoluiu muito, não tem nada a ver com o VB6. E eu estou falando da linguagem, não do Framework.

    Eu diria até que suas funcionalidades atuais são muito superiores ao Java, C++, JavaScript etc.

    O VB.NET não é inferior ao C#, e a Microsoft garantiu que as duas linguagens vão evoluir de forma paralela nas próximas versões, isso é, serão sempre equivalentes em termos de funcionalidades.

    Responda

  2. MayogaX

    Uhn… eu ainda prefiro C# ao vb.net… eu vim do mundo .net antes de comecar a aprender grails. Me assustei ao senhor acabar o post dizendo que achou legal.

    Normamente quem vem do Java odeia .Net de morte.

    Legal, vamos ver a sua jornada nesse seu novo mundo novo (??).

    Responda

    admin Reply:

    O que há de assustador em gostar do vb.net? Mayoga, devemos ignorar os preconceitos pessoais e ver as coisas pelo que são, não pelo status ou preferências pessoais. Principalmente porque se você for pegar as duas linguagens e comparar feature por feature, vai perceber que C# e VB.net são incrívelmente parecidas (aliás, os times trabalham juntos agora)

    ps: e não precisa me chamar de senhor! :) Kico tá ótimo!

    Responda

  3. Heaven

    No final acabou vendo os benefícios do .net (que falei tanto no passado), considero uma ótima tecnologia, mas para mim que comecei com ela antes de outras tecnologias prefiro continuar com as outras.

    Alguns aspectos de .net apesar de bons se estiver com a cabeça fora do lugar acabará enganado, muitas vezes torna um dependente forte do framework como um todo e muitas práticas se tornam um péssimo vício tanto que muitas vezes fica difícil dominar outras tecnologias, a maioria dos programadores .net que conheço são pessimos programadores, tem aqueles que se destacam, mas são de outras linguagem e consequem aproveitar um potencial que nem os programadores realmente nativos da tecnologia conseguem tirar.

    Uma tecnologia interessante que vi recentemente foi D, achei muito versátil além de possuir compilação nativa.

    Responda

    admin Reply:

    Observei o mesmo incentivo a más práticas que você mencionou. E concordo com você.

    Responda

  4. Felipe Nascimento

    Kiko,
    eu também particippo de um projeto .NET com VB.NET.
    Por aqui acabamos usando algumas de minhas influências do mundo java: usamos o NHibernate, e também o Spring.NET, além do NUnit que vc citou.
    A experiência da equipe era com WebForms. Mas tenho visto muito movimento com o ASP.NET MVC no mundo .NET.
    Você está usando qual? WebForms ou MVC?
    Além disso, tenho discutido com o pessoal aqui a possibilidade de usar um framework stack em .NET. Olhamos o Castle Project (que tem muitas influências do Rails), e também o SharpArchitecture. Ambos usam o ASP.NET MVC e o NHibernate por baixo, além de outras coisas.
    Abcs
    Felipe

    Responda

    admin Reply:

    Oi Felipe!

    Sou muito cru no .net. Só trabalhei com aplicações desktop, ou seja, apenas Windows Forms por enquanto.

    No meu caso, uso vb.net para interfacear com um software de engenharia usado na empresa que disponibiliza alguns assemblies em .net mesmo. Sendo assim nunca me aprofundei muito na plataforma.

    Mas já ouvi coisas maravilhosas a respeito do ASP.NET MVC. Tenho muita vontade de me aprofundar neste bichinho ai.

    Responda

  5. jhonatan

    site muito bom encontrei poucos assim na ineternet em relação ao .net comecei o meu desenvolvimento agora com essa plataforma e achei o c# muito trabalhei um tempo com o delphi mais infeslimente a borland largo o delphi de mão e esta um,a porcaria mais em relação a plataforma .net ou java ou o que for com tantas linguagens não se pode dizer qual a melhor cada uma tem o seu objetivo especifico e .net não ruim apenas diferente.
    post. muito bom

    Responda

    admin Reply:

    Opa. Que bom que gostou! Valeu!

    Responda

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.