Frage

Ich bin derzeit mit Rcov C0 Code-Coverage-Analyse für ein Schienen-Projekt zu bekommen, dass ich ist arbeiten.

Allerdings sind diese Ergebnisse praktisch meaningless- I 100% Deckung haben rcov nach (da es nur C0 Analyse umfasst), und ich habe nur knapp die Hälfte der Testfälle für die Funktionalität geschrieben, die bisher vorhanden ist.

Ich bin auf die nützlichen Ergebnisse aus der Codeabdeckung in Visual Studio 2008 Team eingesetzt, die C1 Abdeckung hat. Gibt es irgendwelche Werkzeuge, die ähnliche Abdeckung für Ruby zur Verfügung stellen?

War es hilfreich?

Lösung

Im Moment gibt es keine C1 Coverage Tools für Ruby. In der Tat gibt es nicht alle Coverage Tools andere als rcov.

Bis vor kurzem war es nur möglich, Werkzeuge so zu schreiben, indem das Patchen oder die MRI-Interpreter in C Verlängerung vor Seit etwa zwei Jahren ist es auch möglich, JRuby in Java zu erweitern, und es ist eigentlich seit dem letzten Monat eines Hafen von rcov für JRuby. Dies erfordert jedoch sowohl ein Wissen von Ruby und C, und ein ziemlich tiefes Wissen an, dass, weil das Hantieren mit den Interna der MRT nicht für schwache Nerven ist.

Aber nur mit Rubinius wird es möglich sein, dynamische Analyse-Tools zu schreiben, wie Code-Coverage-Tools in Ruby selbst, so dass Werkzeug zu einem viel größeren Teil der Ruby-Community zugänglich zu schreiben. Meine Hoffnung ist, dass diese, verbunden mit der erheblichen finanziellen Unterstützung von Tool-Anbietern (viele großen IDE-Anbieter entweder arbeiten oder bereits Ruby-IDEs, einschließlich CodeGear (ex-Borland), IntelliJ, NetBeans, Eclipse SapphireSteel (Rubin in Stahl eingeführt für Visual Studio) und sogar Microsoft) wird im Jahr 2009 in der Ruby-Werkzeugraum zu schnelle Innovation führen und wir werden Dinge wie C1, C2 Abdeckung, nPath Komplexität, viel feinere Profilierung und so weiter sehen.

Bis dahin die einzige Idee, die ich habe, ist Java-Tools zu verwenden. Die JRuby Jungs versuchen, die richtige Magie Metadaten zu emittieren ihre erzeugten Bytecode mindestens durchdringbaren durch die Java-Tools zu machen. Also, vielleicht ist es möglich, Java Coverage Tools mit JRuby zu verwenden. Allerdings habe ich keine Ahnung, ob das tatsächlich funktioniert, noch wenn es funktionieren soll.

Andere Tipps

DeepCover ist das einzige vollständige C1 Ruby-Coverage-Tool, das heute vorhanden ist.

Disclosure . Ich bin Mitautor DeepCover

Ich weiß nicht, über Code-Coverage-Tools, aber Rubin eine Mutation Tester genannt heckle hat.

Mutation Test beinhaltet eine Änderung des Codes getestet und zu sehen, ob diese Mutationen die Unit-Tests fehlschlagen.

Leider ist der neueste offizielle Edelstein (Version 1.4.1) hat einige Fehler drin, so können Sie einen Edelstein mit Code aus dem Entwicklungszweig zu bauen. Es kann nur Instanzmethoden mutieren. Ich bin nicht sicher, wie zuverlässig die Entwicklungszweig Version entweder ist.

Mutationstests sollte vermieden werden, wenn der Code des Systems (zB das Löschen von Dateien) können potenziell zerstören getestet. Möglicherweise möchten Sie eine FAQ über heckle lesen und eine FAQ Frage zu erwähnen rcov gegen heckle .

Für die Aufzeichnung NetBeans 7.0 hat Code-Coverage-Analyse für Ruby eingebaut. Ich kann keine Dokumente zu erklären finden, wenn es C0 oder C1 oder nicht, aber es ist etwas im Auge zu behalten.

Alte Post, aber ich lief in sie suchen Ruby-Coverage Tools. FYI lief ich in ein Werkzeug C1 Abdeckung für Ruby single_cov . Sie wissen nicht, wie gut es ihm, aber ich werde es Testlauf einer dieser Tage.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top