Mein aktueller Ruby on Rails-Projekt tut Tests über rcov (genauer gesagt, relevance rcov, und wir haben einen ziemlich hohen Standard (versagen wir den Build, wenn wir < 95% Code Coverage haben).Rcov Berichterstattung drastisch ändert mit -xrefs
Wir den folgenden Befehl verwenden, um dies zu testen.
rcov_cmd = "rcov --rails --text-summary \
--include #{included_dirs} \
--exclude #{excluded_dirs} \
--aggregate #{coverage_dir}/coverage.data \
--output #{coverage_dir} \
Heute habe ich einen Code gefunden, grün (mit run) registriert in den rcov Berichte Homever, kann ich beweisen, dass dieser Code nicht laufen bekommen wird (ich hebe eine Ausnahme zu Beginn der Funktion, und meine Einheit Tests bestanden)
Ich habe etwas recherchiert und das --xrefs-Flag für rcov gefunden, von dem ich dachte, dass es alle Caller für jede Zeile in den rcov-Berichten hinzufügen würde.
änderte ich den rcov Befehl:
rcov_cmd = "rcov --rails --text-summary --xrefs \
--include #{included_dirs} \
--exclude #{excluded_dirs} \
--aggregate #{coverage_dir}/coverage.data \
--output #{coverage_dir} \
(den zusätzlichen --xrefs
flag Mitteilung).
Statt zusätzlicher Callsite-Informationen habe ich stattdessen meine Testabdeckung von 96% auf 48% erhöht.
Ändert --xrefs die Art der Analyse, wie rcov? (Ich dachte, es würde nur Informationen zur Callsite sammeln). Wie unterscheidet sich das vom ersten Befehl? (Ich habe das Gerät Testabdeckung Abfall zu sehen, ob es eine fehlerhafte Einheit Test ist, und ich weiß, dass die Abdeckung Prozentsatz fallen kann, wenn es im Vorfeld ein Fehler ist, aber es sieht gut für mich)
Haben Sie versucht mit nur '--callsites' und keine' --xrefs' zu bestimmen, ob es tatsächlich die enthaltenen Callsites Informationen sind, die den Unterschied verursachen? Könnte das Problem ein wenig einschränken. – Shadwell
Ich ersetzt --xrefs und --callsites und sah den gleichen Rückgang der Testabdeckung – RyanWilcox