Ich versuche, einen Test für diesen Fehler zu schreiben. Ich habe bereits eine Lösung für den Fehler gefunden; Was ich nicht verstehen kann, ist, warum meine Tests den Fehler vor der Veröffentlichung nicht gefunden haben.
Das Problem läuft auf diese Befehlszeile hinaus, die Ver: 0
druckt, wenn sie Ver: 1.00
:
Wenn Sie jedoch -MTest::More
vor -Mversion
einfügen, gibt es Ver: 1.00
aus.
Also meine Frage ist, warum lädt das Laden Test :: More das Verhalten meines Codes? (Warum wird bei Verwendung von ""
anstelle von der Bug behoben?).
Ich benutze Perl 5.14.2, Test :: More 0.98 und Version 0.88.
Es ist ein Fehler in der Version. ist magisch var, und Version kann Magie nicht verarbeiten, bevor überprüft wird, ob das arg definiert ist. Es denkt,
ist undefiniert, wenn niemand jemals von
gelesen hat. Wenn jemand von
gelesen hat (z. B. Test :: More), dann scheint es für die Version definiert zu sein.
Ich habe einen Fehlerbericht eingereicht: Perl RT # 115660
-Version ist fehlerbehaftet, ruft nicht richtig Magie auf und belegt somit nie $ 1. Wenn es funktioniert, wenn zuerst Test :: More geladen wird, liegt das nur daran, dass in $ 1 noch ein alter Wert vorhanden ist
Tags und Links unit-testing regex perl