perl parsing junit cppunit

perl - Salida CppUnit al convertidor de formato TAP



parsing junit (1)

Busco un módulo perl para convertir la salida CppUnit al formato TAP. Deseo usar el comando de prueba luego para ejecutar y verificar las pruebas.


Recientemente estaba haciendo algunas conversiones de junit xml (aunque no al formato TAP). Fue muy fácil de hacer usando el módulo XML :: Twig. Tu código debería verse así:

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 # ... }

Esto debería ser relativamente fácil de pulir en el estado de trabajo