Página 1 de 1

Testes automatizados

Enviado: 08 Nov 2020 19:43
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

Testes automatizados

Enviado: 09 Nov 2020 00:05
por susviela@bol.com.br
.

Bem interessante, bem vindo ao Harbour / xBase.

Blog xBase: https://programandoxbase.wordpress.com/

Testes automatizados

Enviado: 09 Nov 2020 08:32
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!!

Testes automatizados

Enviado: 09 Nov 2020 12:47
por Vlademiro
Na pasta contrib tem uma pasta chamada hbtest com exemplos de testes.

Talvez ajude.

Testes automatizados

Enviado: 09 Nov 2020 13:44
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!

Testes automatizados

Enviado: 09 Nov 2020 19:04
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!!

Testes automatizados

Enviado: 09 Nov 2020 23:03
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.

Testes automatizados

Enviado: 09 Nov 2020 23:13
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

Testes automatizados

Enviado: 10 Nov 2020 18:43
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!

Testes automatizados

Enviado: 10 Nov 2020 19:41
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

Testes automatizados

Enviado: 11 Nov 2020 12:20
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!

Testes automatizados

Enviado: 11 Nov 2020 17:52
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.