В Visual Studio 2017 вы можете увидеть результат из тестового проводника.
1) В вашем методе проверки Console.WriteLine («что-то»);
2) Запустите тест.
3) В окне тестового проводника нажмите Пропущенный тестовый метод.
4) И нажмите ссылку «Выход».
И нажмите «Выход», вы увидите результат Console.Writeline ().
Существуют много созданные-ins, что можно переопределить (см. perlsub). Однако print
один из созданных-ins, который не прокладывает себе путь. Трудности переопределения print
детализированы в этом поток perlmonk .
Однако Вы можете
Теперь, несколько человек дали основную платформу, но она удается отчасти как это:
package IO::Override;
use base qw<Tie::Handle>;
use Symbol qw<geniosym>;
sub TIEHANDLE { return bless geniosym, __PACKAGE__ }
sub PRINT {
shift;
# You can do pretty much anything you want here.
# And it's printing to what was STDOUT at the start.
#
print $OLD_STDOUT join( '', 'NOTICE: ', @_ );
}
tie *PRINTOUT, 'IO::Override';
our $OLD_STDOUT = select( *PRINTOUT );
можно переопределить printf
таким же образом:
sub PRINTF {
shift;
# You can do pretty much anything you want here.
# And it's printing to what was STDOUT at the start.
#
my $format = shift;
print $OLD_STDOUT join( '', 'NOTICE: ', sprintf( $format, @_ ));
}
См. Связь:: Дескриптор для того, что все можно переопределить поведения STDOUT.
Можно использовать Perl выбор для перенаправления STDOUT.
open my $fh, ">log.txt";
print "test1\n";
my $current_fh = select $fh;
print "test2\n";
select $current_fh;
print "test3\n";
дескриптор файла мог быть чем-либо, даже канал к другому процессу, которые отправляют, обрабатывает Ваши сообщения журнала.
PerlIO:: мишень в PerlIO:: модуль Util кажется, позволяет Вам 'класть вывод для первого удара' дескриптора файла нескольким местам назначения (например, процессор журнала и STDOUT).
Вы могли запустить скрипт из сценария обертки, который получает stdout исходного сценария и пишет вывод, где-нибудь разумный.
Большой выбор. Используйте выбор () для изменения дескриптора файла та печать значения по умолчанию к. Или свяжите STDOUT. Или вновь откройте его. Или примените уровень IO к нему.