Add file attribute to Junit testsuite report (#6425)

* feat: add file attribute to Junit testsuite report

* test: update tests to include file attribute

* fix: update playwright tests to support the new file attribute

---------

Co-authored-by: Thomas Vackier <thomas.vackier@inthepocket.com>
Co-authored-by: Bijin A B <bijin@usebruno.com>
This commit is contained in:
Thomas
2025-12-19 14:30:15 +01:00
committed by GitHub
parent 5f88e7d201
commit f47e9e9304
6 changed files with 29 additions and 9 deletions

View File

@@ -18,6 +18,7 @@ const makeJUnitOutput = async (results, outputPath) => {
const suite = {
'@name': result.name,
'@file': result.test.filename,
'@errors': 0,
'@failures': 0,
'@skipped': 0,

View File

@@ -23,6 +23,9 @@ describe('makeJUnitOutput', () => {
{
description: 'description provided',
name: 'Tests/Suite A',
test: {
filename: 'Tests/Suite A.bru'
},
request: {
method: 'GET',
url: 'https://ima.test'
@@ -48,6 +51,9 @@ describe('makeJUnitOutput', () => {
url: 'https://imanother.test'
},
name: 'Tests/Suite B',
test: {
filename: 'Tests/Suite B.bru'
},
testResults: [
{
lhsExpr: 'res.status',
@@ -79,6 +85,9 @@ describe('makeJUnitOutput', () => {
expect(junit.testsuites.testsuite[0]['@name']).toBe('Tests/Suite A');
expect(junit.testsuites.testsuite[1]['@name']).toBe('Tests/Suite B');
expect(junit.testsuites.testsuite[0]['@file']).toBe('Tests/Suite A.bru');
expect(junit.testsuites.testsuite[1]['@file']).toBe('Tests/Suite B.bru');
expect(junit.testsuites.testsuite[0]['@tests']).toBe(2);
expect(junit.testsuites.testsuite[1]['@tests']).toBe(2);
@@ -99,6 +108,9 @@ describe('makeJUnitOutput', () => {
{
description: 'description provided',
name: 'Tests/Suite A',
test: {
filename: 'Tests/Suite A.bru'
},
request: {
method: 'GET',
url: 'https://ima.test'
@@ -124,6 +136,7 @@ describe('makeJUnitOutput', () => {
expect(junit.testsuites).toBeDefined;
expect(junit.testsuites.testsuite.length).toBe(1);
expect(junit.testsuites.testsuite[0].testcase.length).toBe(1);
expect(junit.testsuites.testsuite[0]['@file']).toBe('Tests/Suite A.bru');
const failcase = junit.testsuites.testsuite[0].testcase[0];
@@ -137,6 +150,9 @@ describe('makeJUnitOutput', () => {
const results = [
{
name: 'Tests/Suite A',
test: {
filename: 'Tests/Suite A.bru'
},
request: {
method: 'GET',
url: 'https://ima.test'
@@ -176,6 +192,7 @@ describe('makeJUnitOutput', () => {
expect(junit.testsuites).toBeDefined;
expect(junit.testsuites.testsuite.length).toBe(1);
expect(junit.testsuites.testsuite[0].testcase.length).toBe(4);
expect(junit.testsuites.testsuite[0]['@file']).toBe('Tests/Suite A.bru');
expect(junit.testsuites.testsuite[0]['@tests']).toBe(4);
const testcase1 = junit.testsuites.testsuite[0].testcase[0];