Boa tarde,
Há algum tempo tenho pesquisado e pensado a respeito da possibilidade de termos uma suite de testes para o Harbour.
Para aqueles que não conhecem, testes unitários são testes executados sobre pequenos trechos de código, a fim de garantir que o resultado
será o esperado. Ou seja, em programação funcional, são escritos para testar funções em POO, são testados os métodos.
A maioria das linguagens conhecidas já possuem ferramentas que facilitam esses testes, como a JUnit para Java, pyTest para Python, e inúmeros frameworks e plataformas que executam testes estáticos em diversas linguagens, como o https://www.sonarqube.org/, que tem suporte para 28 linguagens, mas não para a famÃlia xBase.
Para o Harbour, o mais próximo que encontrei, foi a hbUnit, https://github.com/endersonmaia/hbunit, um projeto independente, incompleto e sem atualizações desde 2013.
O assunto é complexo, mas a abordagem inicial pode ser simples: criar uma ferramenta para executar testes estáticos em código Harbour, que futuramente possa ser estendida para cobrir também os testes unitários.
Minha ideia inicial é ler o código, obter as variáveis declaradas e buscar erros de acesso, como acesso fora do limite do array (ou of bound), acesso a array vazio (array acess), acesso a variáveis não inicializadas, etc.
Eu gostaria da ajuda dos colegas mais experientes nesse projeto, que poderá ser útil a toda a comunidade caso saia do papel.
Preciso de ideias para encontrar a melhor forma de ler o código, localizar as variáveis e checar pelos possÃveis erros.
Inicialmente pensei em utilizar regex ou as funções simples de localização de strings mesmo, mas não sei se esse é o melhor caminho.
Se alguém tiver algum conhecimento mais técnico sobre como o compilador checa por este tipo de erro, será de grande ajuda.
O link do projeto no Github é https://github.com/andrelccorrea/Harbour-Static-Testing-Tool, porém, ainda não existe nada de
grande relevância.
Abraços,