Vorwort
Ich bin gerade dabei Ruby zu lernen und versuche nicht nur die Sprache zu lernen, sondern auch einige Entwicklungsstrategien. Als Anfänger konzentriere ich mich auf Test and Behavior Driven Development. (Ja, ich mache beides zu Vergleichszwecken)
Mit meinem kleinen Software-Projekt verwende ich
An verschiedenen Stellen stieß ich auf RCov als ein Werkzeug, um mir zu sagen, wie viel von meinem tatsächlichen Code ich wirklich teste.
Ich habe die folgende RakeTask in meinem Rakefile
für die Covarage-Analyse der UnitTests eingerichtet:
Das funktioniert gut und ich bekomme einen schönen farbigen HTML-Bericht in coverage/tests
.
Problemeinführung
Ähnlich habe ich die folgenden RakeTasks für RCov geschrieben, die für die Coverage-Analyse meiner Spezifikationen verwendet werden:
Problemdefinition
Der generierte HTML-Bericht in coverage/spec
ist jedoch unvollständig und fast fehlgeschlagen.
Keiner der getesteten Methodenkörper ist als bedeckt und somit rot markiert. Ich bin jedoch 100% sicher, dass sie innerhalb der Spezifikationen ausgeführt werden. Nur die Zeilen def method_name(args)
und class ClassName
sind mit 'grün' markiert. (auch Zeilen mit attr_reader :instance_variable
)
Vermisse ich etwas?
%Vor%Ich habe ähnliche Probleme. Ich bin 100% sicher, dass die Spezifikationen nicht ausgeführt werden, wenn ich sie spiele RCov zu gewinnen. Aber sie tun, wenn ich RCov deaktivieren.
Downgrade von RSpec auf Version 2.6.0 hat mir geholfen.
Stellen Sie sicher, dass Sie rcov früh genug benötigen.
Aus Ссылка :
Beachten Sie, dass Sie "rcov" anfordern müssen, bevor der zu analysierende Code geparst wird (d. h. bevor er geladen oder benötigt wird). Sie können dies tun, indem Sie entweder ruby mit der Befehlszeilenoption -rrcov aufrufen oder einfach: