Sou um programador em crescimento que finalmente está colocando em prática o teste de unidade para uma biblioteca que estou armazenando no GitHub.
Ocorreu-me que eu poderia incluir os conjuntos de testes no repositório, mas, ao olhar para outros projetos, a inclusão de testes parece um sucesso ou um fracasso.
Isso é considerado má forma? A ideia é que os usuários estejam interessados apenas no código de trabalho e que, de qualquer maneira, testem em sua própria estrutura?
version-control
unit-testing
parisminton
fonte
fonte
Respostas:
Você definitivamente deve colocar seus testes no repositório. Na minha opinião, os testes fazem parte do código e podem ajudar imensamente outras pessoas a entendê-lo (se bem escrito). Além disso, eles podem ajudar outras pessoas ao alterar ou contribuir com sua base de código. Bons testes podem dar a você a confiança de que suas alterações não quebram inadvertidamente nada.
O código de teste deve estar bem separado do código de produção. O Maven, por exemplo, consegue isso colocando o código de produção e teste em pastas diferentes. A pergunta "este arquivo faz parte da produção ou do código de teste" nunca deve surgir.
Pessoalmente, não escrevo testes de unidade para bibliotecas usadas em meu próprio código. Eu espero que eles estejam funcionando (pelo menos quando eu uso uma versão de lançamento, embora os bugs obviamente possam aparecer). Ele obtém alguma cobertura de teste nos testes de integração, mas isso não é suficiente.
fonte
Se você não incluir os testes de unidade no código-fonte do check-in, então:
Resumindo, eu consideraria não incluir nenhum teste de unidade escrito no repositório de código fonte oficial.
fonte
Obviamente, você deve colocar testes de unidade no repositório, por vários motivos:
fonte
Se houver alguma chance de executá-los em outro computador, inclua-os definitivamente. Eles devem ser construídos separadamente, para que os usuários não precisem e podem ter dependências extras, mas devem ser definitivamente incluídos.
Eu suspeitaria fortemente que a maioria dos projetos que não incluem testes no repositório simplesmente não possui nenhum.
Pode haver um motivo para ter os testes como módulo separado, para que você possa executar facilmente novos testes com códigos mais antigos. Seria útil para testes de bibliotecas estáveis à API ou de caixa preta via linha de comando; a utilidade para linguagens compiladas em que os novos testes provavelmente não serão compilados com códigos mais antigos é limitada.
fonte
Absolutamente. Os pontos extras de bônus aqui são a capacidade de rastrear a versão X de um arquivo de origem que acompanha a versão Y de um teste. Em outras palavras, você precisa poder voltar para uma versão anterior e executar os testes apropriados projetados para essa versão (no caso de uma alteração na API ou algo assim).
fonte
Acabei de ler "Brownfield Application Development in .Net" , e isso fornece alguns conselhos excelentes sobre a estrutura de um aplicativo, incluindo controle de origem e onde / como / por que incluir testes de unidade (principalmente na área de Integração Contínua) . Se você é um desenvolvedor .Net, eu recomendo.
fonte