Warum beseitigt das Laden von Test :: More meinen Fehler?

8

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 :

drucken soll %Vor%

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.

    
cjm 09.11.2012, 18:49
quelle

2 Antworten

8

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.

%Vor%

Ich habe einen Fehlerbericht eingereicht: Perl RT # 115660

    
ikegami 09.11.2012, 19:38
quelle
8
%Vor% Die

-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

    
Leon Timmermans 09.11.2012 19:10
quelle

Tags und Links