perl TAP 测试:如何从 TAP::Formatter::HTML 输出中获取失败测试的计数? [英] perl TAP testing: how to get count of failed tests from TAP::Formatter::HTML output?

查看:36
本文介绍了perl TAP 测试:如何从 TAP::Formatter::HTML 输出中获取失败测试的计数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用 TAP::Formatter::HTML 运行了一些 TAP 测试.

I run some TAP Tests using TAP::Formatter::HTML.

这个 CPAN 模块生成漂亮的动态 HTML 报告,但我想使用通过测试、失败测试等的数量 - 在所有测试完成后将它们插入数据库.

This CPAN module generates beautiful dynamic HTML Reports, but I want to use the number of passed tests, failed tests etc - to insert them into a database after all tests completed.

下面的代码不起作用.它不会向控制台打印任何内容.我承认,对于第 10 行及之后的行,我只是将 TAP::* 类的 POD 描述中的一些代码拼凑在一起.

The code below does not work. It prints nothing to the console. I admit, for lines 10 and after, I just have slapped together some code from the POD descriptions of the TAP::* classes.

在深入研究 Aggregator、Harmess 或 Formatter 类和子类的源代码之前,我最好问一下:

Before I dive into the source code of Aggregator, Harmess or Formatter classes and subclasses, I better ask:

这里有人知道如何使这段代码工作吗?

does anyone here know how to make this code work?

    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";

推荐答案

为什么不从 TAP::Formatter::HTML 的同一来源获取测试数据?它可能正在检查 Test::Builder 对象并从那里获取测试统计信息.Test::Builder 对象是一个单例对象,因此在完成测试并从中提取数据以插入数据库时​​,很容易请求它的副本,同时生成漂亮的 HTML 报告.

Why not get the test data from the same source TAP::Formatter::HTML does? It is probably inspecting the Test::Builder object and getting the test statistics from there. The Test::Builder object is a singleton, so it is pretty easy to request a copy of it after your tests have been done and extract the data from it for DB insertion, at about the same time the pretty HTML reports are generated.

这篇关于perl TAP 测试:如何从 TAP::Formatter::HTML 输出中获取失败测试的计数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆