my $skip; BEGIN { eval "use Class::Accessor"; if ($@) { $skip = 'Class::Accessor required to run this test' } } use strict; use warnings; use Config; use Test::More $skip ? (skip_all => $skip) : (); use IPC::Run3; use YAML::Syck qw(LoadFile); use Data::Dumper; $Data::Dumper::Indent = 1; $Data::Dumper::Sortkeys=1; plan tests => 4; my $script = 'script/umlclass.pl'; my @cmd = ($^X, '-Ilib', $script); my ($stdout, $stderr); { my $outfile = 'preload.yml'; unlink $outfile if -f $outfile; ok run3( [@cmd, '--out', $outfile, '-E', $Config{archlibexp}, '-M', 'TestClassAccessor', '-I', 't/data'], \undef, \$stdout, \$stderr ), "umlclass -o $outfile -E $Config{archlibexp}"; #warn $stdout; like $stdout, qr/TestClassAccessor/, "stdout ok - $outfile generated."; warn $stderr if $stderr; ok -f $outfile, "$outfile exists"; #ok( (-s $outfile > 1000), "$outfile is nonempty" ); if (-f $outfile) { my $dom = LoadFile($outfile); is Dumper($dom), <<'_EOC_'; $VAR1 = { 'classes' => [ { 'methods' => [ 'blah' ], 'name' => 'TestClassAccessor', 'properties' => [ 'name', 'role', 'salary' ], 'subclasses' => [] } ] }; _EOC_ } else { fail "no yml file"; } }