perl - CppUnit 输出到 TAP 格式转换器

标签 perl parsing junit cppunit

我寻求一个 perl 模块来将 CppUnit 输出转换为 TAP 格式。之后我想使用证明命令来运行和检查测试。

最佳答案

最近我正在从junit xml进行一些转换(虽然不是TAP格式)。
使用 XML::Twig 模块很容易做到。
您的代码应如下所示:

use XML::Twig;

my %hash;

my $twig = XML::Twig->new(
   twig_handlers => {
       testcase => sub { # this gets called per each testcase in XML
           my ($t, $e) = @_;
           my $testcase = $e->att("name");
           my $error = $e->field("error") || $e->field("failure");
           my $ok = defined $error ? "not ok" : "ok";
           # you may want to collect
           #   testcase name, result, error message, etc into hash
           $hash{$testcase}{result} = $ok;
           $hash{$testcase}{error}  = $error;
           # ...
       }
   }
);
$twig->parsefile("test.xml");
$twig->purge();

# Now XML processing is done, print hash out in TAP format:
print "1..", scalar(keys(%hash)), "\n";
foreach my $testcase (keys %hash) {
     # print out testcase result using info from hash
     # don't forget to add leading space for errors
     # ...
}

这个应该比较容易打磨成工作状态

关于perl - CppUnit 输出到 TAP 格式转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9248085/

相关文章:

java - 使用 Ant Build 的 Travis CI,找不到 JUnit

java - 运行junit测试时找不到.class文件

perl - 我想访问子程序外部的私有(private)变量

perl - 使用子驼鹿对象重载驼鹿对象,使其成为常规数据类型结构

regex - 谁能在我的 Perl 循环中发现问题?

python - 用于从组中删除用户的 Perl 或 Python 脚本

java解析数据文件格式

java - 从 Oracle 数据库转换带有 AM/PM 日期时间的字符串

javascript - 为什么在使用解析的字符串时出现错误 'Cannot read property ' name' of null'?

java - 当软件已经传递给客户时,包是否应该包含单元测试/测试类? JAVA