Testes automatizados

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

sergiosouzalima
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 26 Out 2020 11:25
Localização: São Paulo / SP

Testes automatizados

Mensagem por sergiosouzalima »

Olá, pessoal!

Conheci o Harbour faz algumas semanas!

Trabalhei com Clipper faz uns 30 anos e ao achar o Harbour foi como se encontrasse um velho amigo de trabalho :-)

Como estou acostumado com linguagens onde os testes automatizados são comuns, procurei e não achei nada sobre isso em Harbour.

Então fiz um teste automatizado bem simples em termos de recursos do Harbour, mas usei as técnicas de testes automatizados, como refatoração, e TDD.

Fiz isso para começar a aprender os recursos da linguagem e saber se era possível usar essa técnica com o do Harbour.

Aproveitei e criei uma função para validação de email.

Fiz o cenário válido com 3 testes e cenário inválido com 5 testes. Todos testes passando!

Segue a imagem da function isValidEmail e o resultado dos testes. :-D

Abraços!

O anexo harbour_testes_automatizados.png não se encontra mais disponível
Anexos
function feita usando TDD
function feita usando TDD
Avatar do usuário
susviela@bol.com.br
Usuário Nível 3
Usuário Nível 3
Mensagens: 236
Registrado em: 30 Jun 2017 11:17
Localização: São José / SC
Contato:

Testes automatizados

Mensagem por susviela@bol.com.br »

.

Bem interessante, bem vindo ao Harbour / xBase.

Blog xBase: https://programandoxbase.wordpress.com/
.
.
"E quando você perder o controle, colherá o que plantou."
=========================================
Carlos Alberto Nunes #Susviela
Site: https://www.PowerInformatica.com.br
=========================================
Blog xBase: https://programandoxbase.wordpress.com/
Blog TI: https://susviela.wordpress.com

( #ProgramandoxBase #AllxBase )
sergiosouzalima
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 26 Out 2020 11:25
Localização: São Paulo / SP

Testes automatizados

Mensagem por sergiosouzalima »

Obrigado pelas boas-vindas, Carlos!

Em relação a usar testes automatizados com refatoração e TDD, já vi que é possível tecnicamente em Harbour.

Só a cultura de usar essa técnica parece não estar na comunidade.

Vou usar o Harbour, aprender mais e aplicar, ou pelo menos experimentar usar técnicas que tenho trabalhado ultimamente em outras linguagens, como Ruby, Python e Java.

Vamos ver! ;-)


Abraços!!
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Testes automatizados

Mensagem por Vlademiro »

Na pasta contrib tem uma pasta chamada hbtest com exemplos de testes.

Talvez ajude.
sergiosouzalima
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 26 Out 2020 11:25
Localização: São Paulo / SP

Testes automatizados

Mensagem por sergiosouzalima »

Vlademiro, excelente dica!!

Nesta pasta "/harbour/contrib/hbtest/", eles criaram um comando específico para testes.

Usaram o #xtranslate e criaram o comando HBTEST.

Pelo exemplo lá, ficou simples e já imagino como usar.

A noite vou modificar os testes que fiz, e usar o HBTEST, para melhorar a forma que implementei.

Assim, faço uma refatoração no próprio teste!! :-D

Sensacional!! ;-)


Obrigado!
sergiosouzalima
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 26 Out 2020 11:25
Localização: São Paulo / SP

Testes automatizados

Mensagem por sergiosouzalima »

Olá Vlademiro!

Eu tentei usar o arquivo test.prg da pasta informada nas mensagens acima.

Ele não acha o arquivo "libhbtest.so".

Eu procurei em todas as pastas do harbour e não achei.

Fiz um git clone de dois repositórios, e não achei dentro deles também:

- https://github.com/Petewg/harbour-core
- https://github.com/harbour/core

A ideia do test.prg é boa, mas não está funcionando.

Para mais detalhes estou anexando uma imagem.


Abraços!!
Anexos
libhbtest-so.png
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Testes automatizados

Mensagem por Vlademiro »

Sergio, infelizmente meu computador queimou a fonte. Não tenho como testar. Eu sei que esse hbtest funciona porque já testei. Eu costumo compilar o Harbour dos fontes. Vc está fazendo assim também ?

Se não estiver, faça :
cd core
make
sudo make install

Use a versão oficial do Harbour. Creio que é a do segundo link que vc mostrou.
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Testes automatizados

Mensagem por Vlademiro »

Também tem esse repositório mas não testei. Ele foi atualizado até 2016. Quem sabe tem algumas ideias interessantes...
https://github.com/endersonmaia/hbunit
sergiosouzalima
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 26 Out 2020 11:25
Localização: São Paulo / SP

Testes automatizados

Mensagem por sergiosouzalima »

Olá Vlademiro!

Espero que recupere logo a fonte!

Fiz o que vc disse: compilei o harbour-core e funcionou o HB_TEST.

Só funciona compilado. Se tentar usar com o hbrun, não funciona.

Mas eu consegui fazer funcionar o HB_TEST.

O que não gostei é que ele responde com algumas frases. Se ele respondesse
somente dizendo se o teste falhou ou não, seria suficiente. Veja a imagem.

Assim, o programar escolhe a forma que quer mostrar na tela.

Vou pensar aqui se consigo fazer algo mais nesse sentido.

O repositório do hbunit também pode ser uma opção.

Mas já me ajudou bastante.

Obrigado!
Anexos
respostas_do_hbtest.png
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Testes automatizados

Mensagem por Vlademiro »

Olá

Continuo sem computador.
Mas tenta compilar com -p, vai gerar um arquivo com extensão ppo. Analisa esse arquivo, talvez tenha como retornar algum valor lógico.

Boa sorte
sergiosouzalima
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 26 Out 2020 11:25
Localização: São Paulo / SP

Testes automatizados

Mensagem por sergiosouzalima »

Olá Vlademiro!

Dentro do arquivo ppo, ele só faz isso:

Transforma isso:
HBTEST 2 + 2 IS 5
em
hbtest_Call( "2 + 2", {|| 2 + 2 }, 5 )


Vou continuar pensando em como melhorar isso.


Obrigado!
Avatar do usuário
ricardosierban
Usuário Nível 2
Usuário Nível 2
Mensagens: 57
Registrado em: 12 Out 2020 21:08
Localização: São Bernardo do Campo/SP
Contato:

Testes automatizados

Mensagem por ricardosierban »

Que legal Sergio, ficou muito bom.
Realmente a comunidade é excelente, mas não tem muito sobre este assunto.
Eu estou ,sem pre que possível, gravando uns vídeos no Youtube sobre Harbour, mas ainda estou aprendendo a linguagem, mas logo fico bom :)
Até comprei um livro de Clipper para aprofundar na linguagem.
O melhor de tudo é comprei no sebo e paguei R$ 10,00 , um livro de 1000 páginas sobre Clipper 5.0 , estou gostando muito.
Boa sorte em seus estudos.
Responder