我试过这个:
test1.pl >output.log 2>&1
但这是结果:
Can't dup STDOUT: Permission denied at C:/Perl/lib/Test/Builder.pm line 1376. Compilation failed in require at C:/Perl/lib/Test/Builder/Module.pm line 3. BEGIN failed--compilation aborted at C:/Perl/lib/Test/Builder/Module.pm line 3. Compilation failed in require at C:/Perl/lib/Test/More.pm line 22. BEGIN failed--compilation aborted at C:/Perl/lib/Test/More.pm line 22. Compilation failed in require at C:/Perl/site/lib/Test/WWW/Selenium.pm line 72. BEGIN failed--compilation aborted at C:/Perl/site/lib/Test/WWW/Selenium.pm line 72. Compilation failed in require at C:\Software\selenium-remote-control-1.0-beta-2\tests\test1.pl line 5. BEGIN failed--compilation aborted at C:\Software\selenium-remote-control-1.0-beta-2\tests\test1.pl line 5.
只要我不尝试以任何方式重定向命令行的输出,脚本就会运行文件.
这是我的脚本,以防万一.(这是Selenium测试脚本):
#!C:/perl/bin/perl.exe -w use strict; use warnings; use Time::HiRes qw(sleep); use Test::WWW::Selenium; use Test::More "no_plan"; use Test::Exception; my $sel = Test::WWW::Selenium->new( host => "localhost", port => 4444, browser => "*chrome", browser_url => "http://localhost/" ); print "Start Time: " . localtime() . "\n"; for (my $count = 3000; $count > 0; $count--) { print $count . " tests remaining.\n"; $sel->open_ok("/home"); $sel->click_ok("link=News"); $sel->wait_for_page_to_load_ok("30000"); $sel->click_ok("video"); $sel->wait_for_page_to_load_ok("30000"); $sel->click_ok("link=Sports"); $sel->wait_for_page_to_load_ok("30000"); $sel->click_ok("link=Movies"); $sel->wait_for_page_to_load_ok("30000"); $sel->click_ok("moremovies"); $sel->wait_for_page_to_load_ok("30000"); } print "End Time: " . localtime() . "\n";
Quassnoi.. 10
有一个在重定向一般问题Perl
的Windows
.
Test::More
包中失败的行说:
open TESTOUT, ">&STDOUT" or die $!;
当您调用命令时,这会失败test.pl > outlog.log
,因为您重定向STDOUT
到的文件被锁定cmd.exe
,而不是perl.exe
.你不能dup()
来perl.exe
你需要运行:
perl test1.pl >output.log 2>&1
代替.
有一个在重定向一般问题Perl
的Windows
.
Test::More
包中失败的行说:
open TESTOUT, ">&STDOUT" or die $!;
当您调用命令时,这会失败test.pl > outlog.log
,因为您重定向STDOUT
到的文件被锁定cmd.exe
,而不是perl.exe
.你不能dup()
来perl.exe
你需要运行:
perl test1.pl >output.log 2>&1
代替.