我使用TAP::Formatter::HTML运行一些TAP测试。
这个CPAN模块生成漂亮的动态HTML报告,但我想使用通过测试的数量,失败的测试等-在所有测试完成后将它们插入数据库。
下面的代码不起作用。它不会将任何内容打印到控制台。我承认,对于第10行和之后的行,我只是拼凑了一些来自TAP::*类的POD描述的代码。
在深入讨论聚合器、无害类或格式化程序类和子类的源代码之前,我最好先问一下:
这里有人知道如何让这段代码工作吗?
my $cons = TAP::Formatter::Console->new();
my $fmt = TAP::Formatter::HTML->new;
$fmt->css_uris( \@css_uris )->inline_css($my_css)->js_uris($js_uris)->inline_js($inline_js);
my $harness = TAP::Harness->new( { formatter => $fmt, merge => 1 } );
$fmt->output_file($outfile);
$harness->test_args(["--browser=$browser", "--config=$config"]);
my $aggregator = TAP::Parser::Aggregator->new;
$aggregator->start();
$harness->runtests(@tests);
# $harness->aggregate_tests( $aggregator, @tests );
$aggregator->stop();
# print $fmt->summary($aggregator);
my $txt = $cons->summary( $aggregator );
my $summary = <<'END_SUMMARY';
Passed: %s
Failed: %s
Unexpectedly succeeded: %s
END_SUMMARY
printf $summary,
scalar $aggregator->passed,
scalar $aggregator->failed,
scalar $aggregator->todo_passed;
#$failcount = sprintf("%03d", $harness->failures());
print "summary: $txt\n";发布于 2010-11-08 00:28:20
为什么不从相同的TAP::Formatter::HTML获取测试数据呢?它可能正在检查Test::Builder对象并从中获取测试统计信息。Test::Builder对象是一个单例对象,因此在测试完成后请求它的副本并从中提取数据以插入DB非常容易,几乎在生成漂亮的HTML报告的同时。
发布于 2010-11-09 03:00:53
发布于 2010-11-11 02:14:30
回答我自己的问题:
my $harness = TAP::Harness->new( { formatter => $fmt, merge => 1 } );
$harness->test_args( [ "--browser=$browser", "--config=$h{config}" ] );
my $agg = $harness->runtests(@tests);
my $summary = <<'END_SUMMARY';
Passed: %s
Failed: %s
Unexpectedly succeeded: %s
To do: %s
Skipped: %s
Planned: %s
END_SUMMARY
printf $summary, scalar $agg->passed,
scalar $agg->failed,
scalar $agg->todo_passed,
scalar $agg->todo ,
scalar $agg->todo_passed,
scalar $agg->skipped,
scalar $agg->planned;我所要做的就是使用runtest的返回值。
https://stackoverflow.com/questions/4117714
复制相似问题