Perl -d und Modulino-Problem

8

Ich habe einige Scripts, die ich mit der "modulino" Idee Unit-Testing gestartet habe. Ich habe ein Problem festgestellt, dass das Skript nicht ausgeführt wird, wenn das Skript mit "perl -d" aufgerufen wird, da caller () einen wahren Wert zurückgibt.

Ich habe den Hauptteil des Skripts in eine main () eingepackt und einige Unterroutinen werden langsam aus main () in ihre eigenen Unterprogramme gezogen.

Am Anfang des Skripts habe ich:

%Vor%

Beim Aufruf von .t-Tests funktioniert es so, wie ich es möchte, nicht mit main (), damit ich die Unterprogramme testen kann. Wenn ich das Skript von CLI aus anrufe, funktioniert es großartig, main ().

Das Problem tritt auf, wenn ich es von der CLI mit aufrufen:

%Vor%

An dieser Stelle gibt der Aufrufer einen gültigen Wert zurück (undef undef) und main wird nicht aufgerufen.

Vorschläge würden sehr geschätzt werden, wie man sich diesem nähert.

    
LanceW 20.02.2012, 17:12
quelle

1 Antwort

8

Die Situation mit -d switch ist ähnlich wie beim Testen - Ihr Code wird von etwas anderem ausgeführt, in diesem Fall vom Debugger.

Sie können main selbst ausführen, indem Sie sie manuell im Debugger aufrufen, oder Sie müssen feststellen, ob caller Debugger ist. Etwas wie:

%Vor%     
bvr 20.02.2012 17:31
quelle

Tags und Links