Automatize critérios de aceitação tanto a nível unitário quanto em testes funcionais de aplicações Web, com Selenium.
- Criar um projeto de testes com Cucumber do zero
- Criar e rodar especificações executáveis
- Integrar seus cenários com testes Web através do Selenium
- Gerar relatórios com o resumo da execução dos testes
Você deve ter um conhecimento básico de JAVA.
Para seguir este tutorial, você precisará instalar o Java JDK e o Eclipse IDE for Java Developers.
Além disso, será necessário instalar o plugin do Cucumber no Eclipse Marketplace. Você pode fazer isso seguindo os passos abaixo:
- Abra o Eclipse IDE.
- Vá para o menu "Help" e selecione "Eclipse Marketplace".
- Na caixa de pesquisa, digite "Cucumber" e pressione Enter.
- Localize o plugin "Cucumber Eclipse Plugin" e clique em "Go to Marketplace".
- Clique no botão "Install" para iniciar a instalação.
- Siga as instruções na tela para concluir a instalação.
- Reinicie o Eclipse após a instalação do plugin.
Após instalar o plugin do Cucumber, você estará pronto para começar a utilizar o BDD com Cucumber em Java no Eclipse.
antes de fechar o project, colcar isso no pom.xml
<dependencies>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.2.5</version>
</dependency>
</dependencies>
NOTA Ver #erro-de-import para mais detalhes
- Testadores que estão cansados de ver os casos de testes ficarem desatualizados
- Desenvolvedores cansados de tanta documentação
Analista de Testes
Wagner Costa possui graduação em Ciências da Computação, Mestrado na área de previsão de séries temporais com Redes Neurais, ambas pela Universidade Estadual do Ceará (UECE). Trabalha com JAVA e testes há mais de 10 anos e com Javascript há mais de 3 anos.
- Integrante da equipe de suporte à automação de testes na DATAPREV
- Professor de Testes automatizados e Testes Funcionais em duas especializações em Fortaleza (Universidade 7 de Setembro - Uni7), uma focada em desenvolvimento ágil e a outra em Testes de Software
- Dá aulas presenciais há mais de 8 anos e na área de aulas à distância há 2 anos.
fonte https://www.udemy.com/course/cucumber-java/learn/lecture/9923368#overview
- buscar por "cucumber" no MVN Repository
- Cucumber JVM: JUnit
- Usar versão 1.2.5
- Copiar o código xml do JUnit e colar no
pom.xml
dentro da tag<dependencies>
- mas dentro de um novo container
<dependency>
(os nomes são parecidos, cuidar para não confundir) - no final, usando o Eclipse, dá um
Ctrl + Shift + F
para formatar o código e não esquece de salvar o arquivo - as dependencias, vão para "Maven Dependencies" dentro do projeto no Eclipse (PS ele pode puxar mais dependencias, mas não precisa se preocupar com isso)
- mas dentro de um novo container
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-junit -->
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.2.6</version>
<type>pom</type>
<scope>test</scope>
</dependency>
NOTA Na vídeo aula, o professor usou a versão 1.2.5. Mas já vi que costuma dar erro na hora de executar o teste com essas configuração dele pois é meio legado... Em regra geral, tenta o 1.2.5 primeiro, se der erro, tenta a última versão. NOTA² A versão do JUnit não pode ser maior que a versão do Cucumber, se não dá erro na hora de executar o teste.
Vou criar um Runner
para o JUnit e a partir de então minhas execuções vai se dar a partir dele.
No mesmo diretório onde está as Classes
com os passos
e nossa Espcificação
(arquivo .feature
), vou pedir para o Eclipse criar uma nova Classe
:
- (default package) > Clica com BDM > New > Class
- Nome:
Runner
> Finish
E tudo que vou fazer nela definir novos runners com o cucumber
import org.junit.runner.RunWith;
import cucumber.api.junit.Cucumber; // <-- repare que o import é do cucumber.junit
@RunWith(Cucumber.class)
public class Runner {
}
Vai dar erro [Esse erro só dá se a versão do JUnit for maior que a versão do Cucumber] porque o Eclipse não sabe onde está o Cucumber.class
, ao importar o Cucumber
com Ctrl + Shift + O
Solve¹: Já identifiquei o problema e já corrigir, só estava utilizando a versão do cucumber menor que a versão do junit,
Solved²: então a solução é essa, colcar substituir [as dependecias] lá no file xml
do pom
Segue o arquivo pom criado durante o curso...
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>br.ce.wcaquino</groupId>
<artifactId>exercicios-curso-cucumber</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.2.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.11.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
</project>