Configurando seu VSCode para desenvolver projetos de testes automatizados .Net Core + NUnit

Saymon C. A. Oliveira
8 min readMar 19, 2020

Você estava bem acostumado com o VisualStudio no seu sistema operacional Windows para o desenvolvimento de projetos de automação de testes Web, API ou Mobile. Com seus recursos confortáveis para debugar, explorar seus testes, gerenciar seus pacotes… Eis que surge a necessidade de migração para a ferramenta VSCode pois seu cliente, squad ou gestor demandou isto… e como ter um ponto de partida? Será se deu certo? 🤷🏽‍♀️

iti malia

Bom, deu sim! Para facilitar esta migração entre ferramentas, deixei um passo a passo de determinados recursos que julguei importantes e como eles podem ser usados e configurados no VSCode.

Agradeço o apoio e estudos dos meus companheiros Aldrich Khalled, José Mário Pedrosa e Sayoan Oliveira.

Ferramenta e Framework de desenvolvimento 👨🏽‍💻

Vale lembrar que estamos abordando sobre o uso do VSCode com o framework de desenvolvimento .NetCore e o orquestrador de testes NUnit, para isso:

Extensões VSCode

A ferramenta VSCode permite que seja customizada conforme necessidade de linguagem ou framework através de extensões. Para o nosso projeto iremos instalar quatro extensões: Dotnet, Test Explorer, Nuget Package Manager e Csharp.
Basta copiar, colar e executar as linhas abaixo em uma janela de linha de comando que automaticamente serão instaladas. Após a instalação, as mesmas estarão disponíveis na aba Extensions.

code --install-extension formulahendry.dotnet
code --install-extension formulahendry.dotnet-test-explorer
code —-install-extension jmrog.vscode-nuget-package-manager
code —-install-extension ms-dotnettools.csharp
Lista de extensões VSCode sem instalações // Lista de extensões VSCode após instalações

Pronto ✔️! Com a ferramenta de desenvolvimento configurada para o nosso tipo de projeto de testes automatizados, framework e linguagem definida, podemos identificar os recursos essenciais que deverão ser configurados no VSCode.

Quais são os recursos que utilizo no VisualStudio?

Inicialmente temos que pontuar quais recursos são mais comuns de serem utilizados no VisualStudio para desenvolvimento dos testes automatizados em um sistema operacional Windows:

  • Criar soluções e projetos dos mais variados tipos
  • Restaurar os pacotes, construir o projeto e executar os testes
  • Gerenciador de testes
  • Gerenciador de pacotes
  • Debugar os testes

Para cada recurso separei uma breve explicação de como configurar:

Criar soluções e projetos dos mais variados tipos 🧐

Bom, no VisualStudio podemos criar os mais diversos tipos de projetos (biblioteca de classes, Unit Test, Console Application) em apenas um clique. No VisualCode para criarmos novas soluções e projetos, utilizamos a linha de comando. Podemos criar os mais diversos tipos de projetos conforme modelos oficiais. Vamos trabalhar com o modelo do NUnit:

  • Crie uma pasta e abra o prompt de comando do windows na pasta:
  • Crie uma solução com o comando:
dotnet new sln -o TreinamentoWeb
  • Acesse a pasta criada da solução e crie um projeto do tipo NUnit com o comando:
dotnet new nunit -o ProjetoNUnit
  • Vincule o projeto a solução com o comando:
dotnet sln add ./ProjetoNUnit/ProjetoNUnit.csproj

Pronto ✔️! Sua solução com um projeto vinculado já está disponível para ser utilizada para o desenvolvimento dos testes automatizados. Próximo passo é entender os comandos básicos para restauração de pacotes, compilação de solução e execução dos testes.

Restaurar pacotes, construir o projeto e executar os testes 🛠

Estes recursos estão disponíveis através de botões/menus na ferramenta Visual Studio e além de ser possível utilizar a linha de comando para efetuar estas ações.

Para o VSCode, podemos usar a tela com as mesmas opções. Mas irei utilizar a linha de comando para isso. Basta abrir a ferramenta e acessar o menu TERMINAL/NEW TERMINAL.

Restaurar pacotes 📦

Espera-se que ao versionar um código fonte em um repositório remoto que os pacotes não sejam incluídos e sim configurados. Para isso utilizamos o gitignore para controlar quais arquivos devem ser incluídos no repositório remoto (gitlab, github, bitbucket, tfs). Com isso, é necessário que sejam restaurados os pacotes configurados no projeto localmente através da ferramenta:

dotnet restore

Construir o projeto 🔨

Construir ou “buildar” consiste na compilação de um projeto e todas as suas dependências em um conjunto de binários com uma extensão .dll . Detalhes do recurso clique aqui. Caso algum erro de sintaxe aconteça, não serão gerados os binários. Abaixo o comando:

dotnet build

Executar os testes 🔍

Utiliza-se os binários gerados pós-build para a descoberta e execução dos testes disponíveis. No nosso caso estamos utilizando o framework de testes NUnit, assim todos os testes com o decorador [Test] serão executados:

dotnet test

Abaixo um exemplo da execução sequencial dos comandos dentro do VSCode:

Pronto ✔️! Já sabemos executar os comandos básicos incluindo a execução de todos os testes disponíveis. Mas onde está a minha lista de testes disponíveis?

Gerenciador de testes 📊

O Gerenciador de Testes pode executar testes de vários projetos de teste em uma solução e de classes de testes que fazem parte dos projetos. Existem diversos frameworks para estruturar os testes, tais como, NUnit, XUnit ou MSTest. No nosso caso iremos utilizar o NUnit, e por se tratar de uma solução de terceiros temos que configurar estruturas de testes, chamados de adaptadores. No nosso modelo escolhido de projeto de testes automatizados, já temos o pacote do adaptador já instalado NUnit3TestAdapter.

É preciso uma configuração extra para habilitar a descoberta dos testes no Gerenciador de Testes do VSCode em máquinas Windows que tenham língua padrão o português brasileiro (PT-BR):

1. Acessar o diretório do instalador do SDK .NetCore:
C:\Program Files\dotnet\sdk\”sua_versão”

2. Apagar a pasta PT-BR

3. Abrir a linha de comando e executar:
set DOTNET_CLI_UI_LANGUAGE=en

Basta verificar a descoberta dos testes pelo Gerenciador de Testes do VSCode. Abra sua solução/projeto e serão listados os testes disponíveis conforme exemplo abaixo:

Pronto ✔️! Consultar seus testes pelo Gerenciador de testes está funcionando. Agora podemos executá-los e identificar os que estão com erros e falha facilmente. Vale lembrar que para recursos de DataDriven, o Gerenciador de testes também funciona perfeitamente. 🧙

Gerenciador de pacotes 📦

Para o gerenciamento de pacotes em .Net utilizamos o Nuget. Existem algumas formas de instalar ou desinstalar pacotes:

  1. Usando o comando dotnet add package do CLI do .NetCore
  2. Adicionando a dependência no XML do projeto (.csproj)
  3. Extensão NuGet Package Manager do VSCode que facilita este processo

Extensão NuGet Package Manager

Após configurar as extensões básicas, comandos básicos, criar seu projeto e configurar o gerenciador de testes, podemos começar a instalar novos pacotes sempre que necessário nos nossos projetos. Vamos utilizar a terceira abordagem citada acima uma vez que no início deste tutorial você já fez a configuração da extensão NuGet Package Manager. Para isso no VSCode faça:

  1. Executar o comando “ctrl + shift + p”
  2. Escolher a opção “Nuget Package Manager: Add Package”

3. Pesquisar o pacote desejado. Exemplo: Selenium.WebDriver

4. Escolher o pacote correspondente, no nosso caso “Selenium.WebDriver”:

5. Selecionar a versão desejada. No nosso caso “3.141.0”

6. Para verificar a instalação do pacote desejado, basta abrir o arquivo *.csproj que a referência do pacote será exibida:

7. Basta utilizar a aba TERMINAL do VSCode com o comando dotnet restore e o pacote estará disponível para uso nas classes.

Pronto ✔️! Incluir, excluir, atualizar os pacotes podem ser feito por várias maneiras e detalhei a opção que julguei mais intuitiva pra vocês.

Debugar os testes

Semelhante ao Visual Studio, podemos debugar testes no VSCode, basta incluir os pontos de paradas chamados de breakpoints (Recurso 8 na imagem abaixo) e iniciar o debug. O debug pode ser iniciado através da janela do Gerenciador de Testes ou através da ação “Debug Test” no decorador do teste alvo.

Recursos ao iniciar o debug:
1. Continue (F5)
2. Step Over (F10)
3. Step Into (F11)
4. Step Out (Shift+F11)
5. Restart (Ctrl + Shift + F5)
6. Stop (Shift + F5)
7. Lista e detalhes das variáveis
8. Breakpoint atual
9. Lista de breakpoints
10. Opção iniciar o debug de um teste
11. Aba Debug do VSCode

Pronto ✔️! Agora podemos minunciosamente achar o que ta aco te ceno em caso de erros e falhas nos testes pegando cada detalhe do teste! 👍

eba!

Considerações finais

A adaptação na ferramenta VSCode está sendo natural uma vez que antes de iniciar a migração da ferramenta de desenvolvimento de testes automatizados que era a Visual Studio, busquei entender quais recursos eu utilizava essencialmente e se os mesmos estariam presentes na nova ferramenta, através de configurações e quis identificar as limitações.

Vale ressaltar que constantemente são lançados novas extensões e que novos recursos sempre irão facilitar a vida de quem esteja codando. Realizo o uso de bibliotecas para automação Web (Selenium Webdriver, ExtentReports), API (RestSharp e Reffit) e Mobile (Appium) e até então vem atendendo às expectativas e necessidades.

É possível customizar tasks no arquivo tasks.json do VSCode para agilizar alguns processos. 💡

Caso você identifique melhorias nesse material, vamos atualizá-lo juntos para contribuir com o conhecimento dos demais QAs. 😆😆

Em breve voltarei com mais conteúdos sobre qualidade de software e automação de testes.

Qualquer dúvida, estou lá no LinkedIn!

Obrigado (=

--

--

Saymon C. A. Oliveira

QA Engineer, crossfiteiro, trigêmeo, amante da natureza e dos animais. Costumo passar um bom tempo assistindo documentários que envolva história e seres vivos..