Page Menu
Home
Sealhub
Search
Configure Global Search
Log In
Files
F21588696
convert-cobertura-to-arcanist.mjs
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Authored By
Unknown
Size
1 KB
Referenced Files
None
Subscribers
None
convert-cobertura-to-arcanist.mjs
View Options
import
fs
from
"fs"
;
import
xml2js
from
"xml2js"
;
function
convertCoberturaToArcanistJSON
(
coberturaXml
)
{
const
parser
=
new
xml2js
.
Parser
();
return
parser
.
parseStringPromise
(
coberturaXml
).
then
((
result
)
=>
{
const
coverage
=
{};
const
classes
=
result
.
coverage
.
packages
[
0
].
package
.
flatMap
(
(
pkg
)
=>
pkg
.
classes
[
0
].
class
);
for
(
const
cls
of
classes
)
{
const
filePath
=
cls
.
$
.
filename
;
const
lines
=
cls
.
lines
[
0
].
line
;
const
lineCoverage
=
[];
let
maxLine
=
0
;
for
(
const
line
of
lines
)
{
const
num
=
parseInt
(
line
.
$
.
number
,
10
);
const
hits
=
parseInt
(
line
.
$
.
hits
,
10
);
if
(
num
>
maxLine
)
maxLine
=
num
;
lineCoverage
[
num
]
=
hits
>
0
?
"C"
:
"U"
;
}
// Fill gaps with 'N'
for
(
let
i
=
1
;
i
<=
maxLine
;
i
++
)
{
if
(
!
lineCoverage
[
i
])
lineCoverage
[
i
]
=
"N"
;
}
const
coverageStr
=
lineCoverage
.
slice
(
1
).
join
(
""
);
coverage
[
filePath
]
=
coverageStr
;
}
return
coverage
;
});
}
const
coberturaXml
=
fs
.
readFileSync
(
"coverage/cobertura-coverage.xml"
,
"utf8"
);
convertCoberturaToArcanistJSON
(
coberturaXml
).
then
((
json
)
=>
{
console
.
log
(
JSON
.
stringify
(
json
));
});
File Metadata
Details
Attached
Mime Type
application/javascript
Expires
Sat, Nov 7, 14:48 (15 h, 48 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1181826
Default Alt Text
convert-cobertura-to-arcanist.mjs (1 KB)
Attached To
Mode
rPLAY Sealious playground
Attached
Detach File
Event Timeline