Я пытаюсь написать сценарий для чтения из текстового файла и преобразовать его в XML на основе формата JUnit. Выходной текстовый файл похож на это:Как преобразовать текстовый файл столбца в XML?
TEST TITLE GROUP PRIO R-STAT R-TIME VERDICT VERDICT-TEXT
------------------------- ---------------------------------------- -------- ---- ------ ------------ -------- --------------------------------------------------
Telex Telex type GROUP1 1 PASS 00:00:02.914 PASS Over
Time Timer GROUP2 1 PASS 00:00:06.619 PASS Over
Вот результат я ожидаю для текстового файла выше:
<?xml version="1.0" encoding="utf-8"?>
<testsuites name="HostTests for Character" tests="TestSuite" time="">
<testsuite name="GROUP1" package="GROUP1" tests="" errors="">
<testcase classname="GROUP1.Telex" name="Telex type" time="" status="">
<skipped/>
<error message="" type=""/>
<failure message="" type=""/>
<system-out/>
<system-err/>
<testcase/>
<testcase classname="GROUP2.Time" name="Timer" time="" status="">
<skipped/>
<error message="" type=""/>
<failure message="" type=""/>
<system-out/>
<system-err/>
<testcase/>
<textsuite/>
<testsuites/>
Как я могу написать скрипт на Perl, чтобы выполнить это в Дженкинс?
Я также попытался:
#!/usr/bin/perl
use strict;
use warnings;
my $parser = XML::LibXML->new();
my $xslt = XML::LibXSLT->new();
my $textroot = $xslt ->parse_verdict_file("\\\~/jenkins/workspace/HostTestOAM/trunk/nash/test/regression/logs/verdict.1.txt");
my $checker = 1;
my @txtfile = logj('logs/verdict*.txt');
foreach (@txtfile){
my $txtfile = $_;
$txtfile =~ s/([()])/\\$1/g;
$txtroot2 = "\\\~/jenkins/workspace/HostTestOAM/trunk/nash/test/regression/logs/$txtfile";
my $source = $parser->parse_file($txtroot2);
my $results = $textroot->transform($source);
my $xmlparsed = "\\\~/jenkins/workspace/HostTestOAM/trunk/nash/test/regression/logs/results$checker.xml";
unless(open FILE, '>'.$xmlparsed) {
die "\Creating failed\n";
}
$textroot -> output_file($results, FILE);
close FILE;
$checker++;
}
Вам необходимо предоставить какой-то код, который вы пытались реализовать. Люди не собираются просто делать это за вас. Я понимаю, что это может быть сложно, если вы не знаете, что делаете, но начните с базового примера и проработайте свой путь вверх. –
Прошу прощения за мою ошибку. Ниже приведен код, который я пробовал: –
Я редактировал выше Steve :) –