Pergunta

Atualmente estou usando Rcov para obter análise de cobertura de código C0 por trilhos projeto que eu 'm trabalhando.

No entanto, esses resultados são praticamente meaningless- eu tenho 100% de cobertura de acordo com rcov (uma vez que só abrange a análise C0) e eu mal escrito metade dos casos de teste para a funcionalidade que existe até agora.

Estou acostumado aos resultados úteis a partir da cobertura de código em Visual Studio Team 2008, que tem cobertura C1. Existem algumas ferramentas que oferecem cobertura semelhante para Ruby?

Foi útil?

Solução

No momento, não há ferramentas de cobertura de C1 para Ruby. Na verdade, não há qualquer diferentes Rcov ferramentas de cobertura.

Até recentemente, só era possível escrever ferramentas como esta remendando ou estender o intérprete MRI em C. Desde há aproximadamente dois anos, também é possível estender JRuby em Java, e não há, na verdade, desde o mês passado um porto de Rcov para JRuby. No entanto, isso requer um conhecimento do Ruby e C, e um conhecimento muito profundo em que, por causa brincar com as partes internas do MRI não é para os fracos de coração.

Mas só com Rubinius será possível escrever ferramentas de análise dinâmica, tais como ferramentas de cobertura de código em si Ruby, tornando ferramenta de escrita acessível a uma parcela muito maior da comunidade Ruby. Minha esperança é que este, juntamente com o apoio financeiro substancial de fornecedores de ferramentas (muitos dos principais fornecedores de IDE são ou trabalhando ou já introduziram Rubi IDEs, incluindo CodeGear (ex-Borland), IntelliJ, NetBeans, Eclipse, SapphireSteel (Ruby no aço para o Visual Studio) e até mesmo a Microsoft) vai levar a uma rápida inovação no espaço ferramentas de ruby ??em 2009 e vamos ver coisas como C1, C2 cobertura, a complexidade nPath, muito mais profiling e assim por diante de grão fino.

Até então, a única ideia que eu tenho é usar ferramentas Java. Os caras JRuby tentar emitir os metadados magia adequada para fazer seu bytecode gerado pelo menos penetrável pelas ferramentas Java. Assim, talvez seja possível usar ferramentas de cobertura de Java com JRuby. No entanto, eu não tenho idéia se isso realmente funciona, nem se ele é suposto trabalho.

Outras dicas

DeepCover é a ferramenta C1 Rubi A cobertura só completa que existe hoje.

Divulgação :. Eu sou co-autor de DeepCover

Eu não sei sobre ferramentas de cobertura de código, mas Ruby tem uma mutação tester chamado heckle.

testes Mutação envolve a alteração do código a ser testado e ver se essas mutações causam os testes de unidade para falhar.

Infelizmente, a última jóia oficial (versão 1.4.1) tem alguns bugs nele, assim você pode querer construir uma jóia usando o código do ramo de desenvolvimento. Ela só pode sofrer mutação métodos de instância. Eu não tenho certeza o quão confiável a versão ramo de desenvolvimento é qualquer um.

testes de mutação deve ser evitado se o código que está sendo testado pode potencialmente destruir o sistema (por exemplo, a exclusão de arquivos). Você pode querer ler um FAQ sobre heckle e uma pergunta FAQ mencionar rcov contra heckle .

Para o registro, o NetBeans 7.0 tem código de análise de cobertura para Ruby embutido. Não consigo encontrar qualquer docs explicando se é C0 ou C1 ou não, mas é algo para manter um olho em.

Post antigo, mas eu corri para ele procurando ferramentas de cobertura de Ruby. FYI eu corri para uma ferramenta de cobertura de C1 para Ruby chamado single_cov . Não sei como é bom, mas eu vou dar-lhe uma execução de teste destes dias.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top