Estou escrevendo um jogo e o mecanismo gráfico que acompanha o OpenGL em C ++. Também sou fã de bons processos de codificação e testes automatizados. O código gráfico + o teste parecem bastante imiscíveis, pois a saída geralmente é apenas visual ou muito orientada para o visual.
Por exemplo, imagine analisar o fluxo de imagem bruto processado na tela, byte a byte - você precisa comparar os dados de teste, o que é difícil de criar / obter, e geralmente as imagens renderizadas não são idênticas em um nível de bytes ao executar em momentos diferentes - pequenas alterações nos algoritmos prejudicarão completamente essa abordagem.
Estou pensando em criar uma suíte visual de teste de unidade, na qual eu possa renderizar diferentes cenas de teste, mostrando coisas como mapeamento de sombras, animação, etc etc etc. Como parte do CI, essas cenas serão renderizadas em um vídeo arquivo (ou possivelmente deixá-lo como um executável) com diferentes métricas. Isso ainda exigiria inspeção manual do arquivo de vídeo, mas, pelo menos, seria um pouco automatizado e padronizado.
O que você acha? Espero que haja maneiras melhores?