RCov für RSpec 2 keine Abdeckung richtig erkannt? (nicht Schienen!)

8

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

  • UnitTest (TDD)
  • Gurke (BDD)
  • Rspec (TDD und BDD)

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:

%Vor%

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:

%Vor%

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%     
Torbjörn 16.01.2012, 21:05
quelle

3 Antworten

3

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.

    
Sergey Potapov 11.04.2012 12:09
quelle
2

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:

    
gioele 01.02.2012 12:52
quelle
0

Ich habe das behoben, indem ich hinzugefügt habe:

RSpec::Core::Runner.autorun

am Ende meiner Spezifikationsdatei; arbeitete sogar mit rspec 2.9

    
rlpowell 05.04.2017 06:00
quelle

Tags und Links