24
Cerco un modulo perl per convertire l'output CppUnit nel formato TAP. Voglio utilizzare il comando per provare in seguito per eseguire e controllare i test.Uscita CppUnita al convertitore di formato TAP
Cerco un modulo perl per convertire l'output CppUnit nel formato TAP. Voglio utilizzare il comando per provare in seguito per eseguire e controllare i test.Uscita CppUnita al convertitore di formato TAP
Recentemente stavo facendo un po 'di conversione da junit xml (non al formato TAP). È stato molto semplice utilizzare il modulo XML :: Twig. codice si dovrebbe guardare in questo modo:
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
# ...
}
Questo dovrebbe essere relativamente facile da lucidare in stato
Io non so nulla di lavorare, ma CppUnit sembra utilizzare l'uscita JUnit XML. Potresti avere più fortuna alla ricerca di un convertitore JUnit-to-TAP. Altrimenti la soluzione migliore potrebbe essere scrivere un [plugin CppUnit] (http://cppunit.sourceforge.net/doc/lastest/class_plug_in_manager.html) che emette direttamente TAP piuttosto che eseguire una conversione. – Schwern
Si dovrebbe guardare TAP :: Harness :: JUnit, il suo codice può aiutare a scrivere il convertitore inverso (che non sembra esistere). –