Thread Ist es möglich, eine STDIN-Aufforderung unwirksam zu machen?
(7 answers)
Opened by Kuerbis at 2014-04-23 14:54
Hallo!
In einer Funktion habe ich eine Eingabeaufforderung um zu verhindern, dass die Nachricht von den folgenden Ausgaben überschrieben wird. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 sub function { ... if ( ... ) { warn "Warning message!"; print "Press ENTER"; my $dummy = <STDIN>; } ... } Wenn ich die Funktion so teste Code (perl): (dl
)
1 2 3 4 5 6 7 8 use Test::More; use Test::FailWarnings; use Capture::Tiny qw( capture_merged ); ok( my $dummy = capture_stdout{ my $d = choose( function( { opt1 => val1 } ) } ); ok( my $dummy = capture_stdout{ my $d = choose( function( { opt2 => val2 } ) } ); done_testing; dann bleibt der Test nach dem ersten warn hängen. Wenn ich es so schreibe, dann funktioniert es, aber es sieht nicht gut aus: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 use Test::More; use Test::Fatal; use Capture::Tiny qw( capture_merged ); $SIG{__WARN__} = sub { die @_ }; is( exception { my $dummy = capture_merged{ function( { opt1 => val1 } ) } }, undef, "{ opt1 => val1 } does not warn" ); is( exception { my $dummy = capture_merged{ function( { opt2 => val2 } ) } }, undef, "{ opt2 => val2 } does not warn" ); done_testing; Gibt es eine Möglichkeit, die Eingabeaufforderung automatisch zu überspringen? |