24
Busco un módulo perl para convertir la salida CppUnit al formato TAP. Deseo usar el comando probar después para ejecutar y verificar las pruebas.CppUnit salida al convertidor de formato TAP
Busco un módulo perl para convertir la salida CppUnit al formato TAP. Deseo usar el comando probar después para ejecutar y verificar las pruebas.CppUnit salida al convertidor de formato TAP
Recientemente estaba haciendo algunas conversiones desde junit xml (aunque no a formato TAP). Fue muy fácil de hacer usando el módulo XML :: Twig. código debería tener este aspecto:
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 estado
No sé nada de trabajo, pero CPPUnit parece estar utilizando JUnit de salida XML. Puede tener más suerte buscando un convertidor de JUnit a TAP. De lo contrario, la mejor opción podría ser escribir un [complemento CppUnit] (http://cppunit.sourceforge.net/doc/lastest/class_plug_in_manager.html) que emita TAP directamente en lugar de realizar una conversión. – Schwern
Deberías mirar TAP :: Harness :: JUnit, su código puede ayudarte a escribir el convertidor inverso (que no parece existir). –