Domanda

Attualmente sto utilizzando Rcov per ottenere l'analisi della copertura del codice C0 per un progetto di binari che ho ci sto lavorando.

Tuttavia, questi risultati sono praticamente privi di significato: ho una copertura del 100% secondo rcov (poiché copre solo l'analisi C0) e ho appena scritto metà dei casi di test per la funzionalità che esiste finora.

Sono abituato ai risultati utili della copertura del codice nel team di Visual Studio 2008, che ha una copertura C1. Esistono strumenti che forniscono una copertura simile per ruby?

È stato utile?

Soluzione

Al momento non ci sono strumenti di copertura C1 per Ruby. In effetti, non esistono alcun strumenti di copertura diversi da RCov.

Fino a poco tempo fa, era possibile scrivere strumenti come questo solo modificando o estendendo l'interprete della risonanza magnetica in C. Da circa due anni fa, è anche possibile estendere JRuby in Java, e in realtà esiste dal mese scorso una porta di RCov per JRuby. Tuttavia, ciò richiede sia una conoscenza di Ruby e C, sia una conoscenza abbastanza profonda, perché armeggiare con l'interno della risonanza magnetica non è per i deboli di cuore.

Ma solo con Rubinius sarà possibile scrivere strumenti di analisi dinamica come gli strumenti di copertura del codice nello stesso Ruby, rendendo la scrittura degli strumenti accessibile a una porzione molto più ampia della comunità di Ruby. La mia speranza è che ciò, unito al sostanziale sostegno finanziario dei venditori di utensili (molti dei principali fornitori di IDE stiano lavorando o abbiano già introdotto Ruby IDE, tra cui CodeGear (ex Borland), IntelliJ, NetBeans, Eclipse, SapphireSteel (Ruby in Steel per Visual Studio) e persino Microsoft) porterà a una rapida innovazione nello spazio degli strumenti Ruby nel 2009 e vedremo cose come C1, copertura C2, complessità NPath, profilatura molto più fine e così via.

Fino ad allora, l'unica idea che ho è di usare gli strumenti Java. I ragazzi di JRuby cercano di emettere i metadati magici corretti per rendere il loro codice generato generato almeno penetrabile dagli strumenti Java. Quindi, forse è possibile utilizzare gli strumenti di copertura Java con JRuby. Tuttavia, non ho idea se funzioni davvero, né se dovrebbe funzionare.

Altri suggerimenti

DeepCover è l'unico strumento completo C1 di Ruby che esiste oggi.

Disclosure : sono coautore di DeepCover .

Non conosco gli strumenti di copertura del codice, ma ruby ??ha un tester di mutazione chiamato Heckle.

Il test di mutazione implica la modifica del codice in fase di test e la verifica se tali mutazioni causano il fallimento dei test unitari.

Sfortunatamente, l'ultima gemma ufficiale (versione 1.4.1) contiene alcuni bug, quindi potresti voler creare una gemma usando il codice del ramo di sviluppo. Può solo mutare i metodi di istanza. Non sono sicuro di quanto sia affidabile la versione del ramo di sviluppo.

I test di mutazione dovrebbero essere evitati se il codice da testare potrebbe potenzialmente distruggere il sistema (ad es. eliminando i file). Potresti leggere una FAQ su heckle e una domanda frequente che menziona rcov contro heckle .

Per la cronaca, NetBeans 7.0 ha un'analisi della copertura del codice per Ruby integrata. Non riesco a trovare alcun documento che spieghi se è C0 o C1 o no, ma è qualcosa da tenere d'occhio.

Vecchio post, ma mi sono imbattuto in esso alla ricerca di strumenti di copertura di Ruby. Cordiali saluti Mi sono imbattuto in uno strumento di copertura C1 per Ruby chiamato single_cov . Non so quanto sia bello, ma lo farò fare un test in uno di questi giorni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top