perl – 在Windows上构建TAP :: Formatter :: HTML的麻烦
发布时间:2020-12-15 23:33:53 所属栏目:大数据 来源:网络整理
导读:我的cpan TAP::Formatter::HTML 安装在01_basic.t挂起,我不知道为什么: CPAN.pm: Going to build S/SP/SPURKIS/TAP-Formatter-HTML-0.09.tar.gz# running Build.PL --installdirs siteSet up gcc environment - 3.4.5 (mingw-vista special r3)Set up gcc e
|
我的cpan
TAP::Formatter::HTML安装在01_basic.t挂起,我不知道为什么:
CPAN.pm: Going to build S/SP/SPURKIS/TAP-Formatter-HTML-0.09.tar.gz # running Build.PL --installdirs site Set up gcc environment - 3.4.5 (mingw-vista special r3) Set up gcc environment - 3.4.5 (mingw-vista special r3) Set up gcc environment - 3.4.5 (mingw-vista special r3) Set up gcc environment - 3.4.5 (mingw-vista special r3) Created MYMETA.yml and MYMETA.json Creating new 'Build' script for 'TAP-Formatter-HTML' version '0.09' C:Perlbinperl.exe Build --makefile_env_macros 1 Set up gcc environment - 3.4.5 (mingw-vista special r3) Set up gcc environment - 3.4.5 (mingw-vista special r3) Set up gcc environment - 3.4.5 (mingw-vista special r3) Building TAP-Formatter-HTML SPURKIS/TAP-Formatter-HTML-0.09.tar.gz C:Perlsitebindmake.exe -- OK CPAN: YAML::XS loaded ok (v0.35) Running make test C:Perlbinperl.exe Build --makefile_env_macros 1 test Set up gcc environment - 3.4.5 (mingw-vista special r3) Set up gcc environment - 3.4.5 (mingw-vista special r3) Set up gcc environment - 3.4.5 (mingw-vista special r3) t 1_basic.t ............... 1/? Caught SIGINT. Trying to quit ... Terminating on signal SIGINT(2) Terminating on signal SIGINT(2) Terminate batch job (Y/N)? Y 为了更好地理解这个的根本原因,我修改了测试以包含一些打印并独立运行: use strict;
use warnings;
$|++;
use lib 'lib';
use lib 't/lib';
use feature 'say';
use Test::More 'no_plan';
use FileTempTFH;
use File::Basename qw( basename );
use TAP::Harness;
use_ok( 'TAP::Formatter::HTML' );
my $stdout_fh = FileTempTFH->new;
say "Defined FileTempTFH object";
my $stdout_orig_fh = IO::File->new_from_fd( fileno(STDOUT),'w' )
or die "Error opening STDOUT for writing: $!";
say "Defined IO::File object";
STDOUT->fdopen( fileno($stdout_fh),'w' )
or die "Error redirecting STDOUT: $!";
say "Opened STDOUT";
my @tests = glob( 't/data/*.pl' );
say "Tests defined : @tests";
my $h = TAP::Harness->new({ merge => 1,formatter_class => 'TAP::Formatter::HTML' });
$h->runtests(@tests);
say "Tests run";
STDOUT->fdopen( fileno($stdout_orig_fh),'w' )
or die "Error resetting STDOUT: $!";
my $stdout = $stdout_fh->get_all_output || '';
isnt( $stdout,'','captured test output to stdout' );
foreach my $file (@tests) {
my $test = basename( $file );
$test =~ s/.pl$//;
ok( $stdout =~ qr|$test|,"output contains test '$test'" );
}
这也挂起: C:PerlcpansourcesauthorsidSSPSPURKISTAP-Formatter-HTML-0.09>perl t 1_basic.t ok 1 - use TAP::Formatter::HTML; Defined FileTempTFH object Defined IO::File object 似乎挂起的语句是STDOUT-> fdopen(fileno($stdout_fh),’w’). 为什么会发生这种情况,如何在我的设置上安装模块? PS,FileTempTFH的内容: package FileTempTFH;
use strict;
use warnings;
use Fcntl qw( SEEK_SET );
use base qw( File::Temp );
sub get_all_output {
my $self = shift;
$self->seek( 0,SEEK_SET );
my $html;
{
local $/ = undef;
$html = <$self>;
}
return $html;
}
1;
我的perl -V细节: Set up gcc environment - 3.4.5 (mingw-vista special r3) Summary of my perl5 (revision 5 version 14 subversion 2) configuration:
Platform:
osname=MSWin32,osvers=5.2,archname=MSWin32-x86-multi-thread
uname=''
config_args='undef'
hint=recommended,useposix=true,d_sigaction=undef
useithreads=define,usemultiplicity=define
useperlio=define,d_sfio=undef,uselargefiles=define,usesocks=undef
use64bitint=undef,use64bitall=undef,uselongdouble=undef
usemymalloc=n,bincompat5005=undef Compiler:
cc='C:/Perl/site/bin/gcc.exe',ccflags ='-DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTE XT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -D_USE_32BIT_TIME_T -DHASATTRIBUTE -fno-strict-aliasing -mms-bitfields',optimize='-O2',cppflags='-DWIN32'
ccversion='',gccversion='3.4.5 (mingw-vista special r3)',gccosandvers=''
intsize=4,longsize=4,ptrsize=4,doublesize=8,byteorder=1234
d_longlong=undef,longlongsize=8,d_longdbl=define,longdblsize=8
ivtype='long',ivsize=4,nvtype='double',nvsize=8,Off_t='__int64',lseeksize=8
alignbytes=8,prototype=define Linker and Libraries:
ld='C:Perlsitebing++.exe',ldflags ='-L"C:PerllibCORE"'
libpth=lib
libs=-lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion
-lodbc32 -lodbccp32 -lcomctl32 -lmsvcrt
perllibs=-lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lvers ion -lodbc32 -lodbccp32 -lcomctl32 -lmsvcrt
libc=msvcrt.lib,so=dll,useshrplib=true,libperl=perl514.lib
gnulibc_version='' Dynamic Linking:
dlsrc=dl_win32.xs,dlext=dll,d_dlsymun=undef,ccdlflags=' '
cccdlflags=' ',lddlflags='-mdll -L"C:PerllibCORE"'
Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS
PERL_MALLOC_WRAP PERL_PRESERVE_IVUV PL_OP_SLAB_ALLOC
USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF
USE_SITECUSTOMIZE Locally applied patches:
ActivePerl Build 1402 [295342] Built under MSWin32 Compiled at Oct 7 2011 15:49:44 @INC:
C:/Perl/site/lib
C:/Perl/lib
.
解决方法
尝试更新的一个,从RT票证似乎在当前版本中解决:
“我在v0.11中解决了这个问题.” 因为只有测试失败,你可以强制安装它.测试: http://howto.eyeoncomputers.com/programming/cpan-force-install/ fforce install TAP::Formatter::HTML 或者用cpanm cpanm --notest TAP::Formatter::HTML 问候, (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
