TestNG é uma estrutura de teste poderosa que permite aos desenvolvedores escrever testes flexíveis com agrupamento, sequenciamento e recursos orientados a dados; até torna a escrita de testes paralelos fácil. E o recurso mais poderoso, na minha opinião, é um conjunto de ouvintes que se conecta ao TestNG, o que permite controlar melhor os casos de teste ou aumentar os relatórios, etc.
o plugin TestNG Eclipse oferece a capacidade de executar e depurar casos de teste TestNG dentro do Eclipse IDE.
este artigo compartilha algumas dicas sobre como ser eficiente ao criar e executar testes com TestNG Eclipse Plugin.
instalação
TestNG para Eclipse Plugin está disponível no Eclipse Marketplace, siga o Guia de instalação.
Use TestNG Eclipse Plugin
Authoring Tests
quando você está criando os casos de teste TestNG, os modelos predefinidos podem definitivamente ajudá-lo a ser mais eficiente. Para criar um método de teste, no editor, digite test
e pressione a tecla de atalho Content Assist (‘Alt + /’ no meu caso), selecione o modelo como abaixo:
Nota: haverá mais modelos disponíveis no TestNG Eclipse Plugin 6.10.1, por exemplo, ‘setup’,’ teardown’, etc.
Executar/Depurar Testes
Iniciar Testes
Existem várias maneiras de iniciar os testes, o que é muito útil. Aqui estão as diferentes maneiras pelas quais isso pode ser feito:
- clicando com o botão direito do mouse na classe de teste ou no editor de origem, para executar esse teste.
- clique com o botão direito do mouse no pacote, para executar todos os testes no Pacote.
- clique com o botão direito do mouse no arquivo xml do pacote TestNG, para executar o pacote de teste personalizado.
- ou, vá para executar a configuração para melhor controle na configuração de inicialização, por exemplo, o grupo de teste a ser executado; passe as propriedades do sistema para o processo de teste de tempo de execução, etc.
> Re-executar Testes que Falharam
Se você tiver vários testes que falharam, depois de corrigir o seu código de teste, você pode executar novamente os testes que falharam completamente para economizar tempo:
o Maven Integração
Se o seu projeto é Maven gerenciado, você pode querer configurar maven-surefire-plugin
ou maven-failsafe-plugin
para executar o caso de teste. Digamos que você passe os seguintes argumentos JVM e propriedades do sistema para o processo de teste de tempo de execução:
<artifactId>maven-surefire-plugin</artifactId><configuration> <suiteXmlFiles> <suiteXmlFile>test-suite/testng.xml</suiteXmlFile> </suiteXmlFiles> <argLine>-javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar -Xmx1024m -XX:MaxPermSize=512m -Xms256m -Xmx1024m -XX:PermSize=128m -Dversion=${project.version} </argLine> <systemPropertyVariables> <foo>${foo.value}</foo> </systemPropertyVariables> <environmentVariables> <bar>${bar.value}</bar> </environmentVariables></configuration>
os testes funcionam bem com Maven cli, mvn -e test
, mas podem falhar com qualquer versão do plugin TestNG Eclipse antes de 6.9.10. Nesse caso, você teria que copiar manualmente as propriedades do sistema para iniciar a configuração de cada teste.
felizmente, hoje, o Plugin TestNG Eclipse pode analisar a configuração de maven-surefire/failsafe-plugin
, anexá-los automaticamente à configuração de inicialização. Dessa forma, também torna o comportamento o mais próximo possível da execução na linha de comando. Para mais detalhes, consulte o guia oficial.
Nota: O recurso equivalente para a integração do Gradle com o Eclipse Buildship está em planejamento, você pode acompanhar o ticket aqui.
TestNG Eclipse Plugin interno
é útil entender o núcleo do plugin TestNG Eclipse, especialmente quando você está tendo problemas para usá-lo.
quando um teste em execução, o plugin precisa obter os resultados do teste do processo de teste de tempo de execução e exibi-los na visualização em tempo real.
a comunicação entre o plugin e o processo de teste de tempo de execução é feita via socket. O plugin primeiro inicia o servidor de Soquete. Enquanto está no processo de teste de tempo de execução, há um conjunto de ouvintes que se conectam ao tempo de execução do TestNG e enviam os resultados do teste de volta ao plug-in via socket.
as funcionalidades de comunicação do soquete são mantidas no projeto ‘testng-remote’ no GitHub.
Palavras Finais
continuamos melhorando a experiência do Plugin TestNG Eclipse, envie seus comentários e ideias sobre o projeto GitHub aqui.
Sobre o Autor
Nick Tan
Ebates
- GitHub