@@ -15,17 +15,33 @@ export default async function customJUnitFormatter(results, document, spectral)
1515 // Add test cases for each rule
1616 for ( const ruleName of Object . keys ( allRules ) ) {
1717 const rule = allRules [ ruleName ] ;
18+
19+ // Collect all results for this specific rule
20+ const ruleResults = results . filter ( ( result ) => result . code === ruleName ) ;
21+
1822 const testCase = xml . ele ( 'testcase' , {
1923 classname : ruleName ,
2024 name : rule . description || 'No description available' ,
21- time : '0' , // Default time
25+ time : '0' ,
2226 } ) ;
2327
2428 if ( failedRules . has ( ruleName ) ) {
25- const failure = results . find ( ( result ) => result . code === ruleName ) ;
26- testCase . ele ( 'failure' , { type : ruleName } , failure . message ) ;
27- } else {
28- testCase . ele ( 'success' ) ; // Mark as success for passed rules
29+ // Add detailed failure information including components
30+ ruleResults . forEach ( ( result ) => {
31+ const failureDetails = testCase . ele ( 'failure' , {
32+ type : ruleName ,
33+ path : result . path || 'Unknown path'
34+ } ) ;
35+
36+ // Include component and specific location details
37+ failureDetails . txt ( JSON . stringify ( {
38+ message : result . message ,
39+ component : result . path || 'Unknown' ,
40+ location : result . range
41+ ? `Line ${ result . range . start . line } , Column ${ result . range . start . character } `
42+ : 'No specific location' ,
43+ } , null , 2 ) ) ;
44+ } ) ;
2945 }
3046 }
3147
0 commit comments