Detailed newman reporter which can be used by "Publish Test Results"

My question:

Is there a Newman reporter I can use with Azure DevOps that displays request headers, body, status code, and error message? I more or less need the failed test to display all the required information to reproduce it.
I am familiar with HTML extra, but sadly my CTO will only allow a reporter which can be used with “Publish Test Results” and as far as I know for HTML extra the “Upload Postman HTML Report” extension is required.

Details (like screenshots):

I’ve already tried:
(I use the basic -junit reporter)
This is my current solution since as far as I can tell the basic junit reporter only displays the test status failed/passed and test name, I have actually put all the information I need into the test name:

But this solution simply looks bad and is awful for writing tests in postman since a large portion of the code is the test name.

var jsonData=JSON.parse(responseBody);
var ReqBody = JSON.stringify(request.data).replaceAll(‘\’,‘’);
ReqBody = ReqBody.substring(1,ReqBody.length-1);
var ReqHeaders = JSON.stringify(request.headers);
var ReqUrl = pm.variables.replaceIn(pm.request.url.toString());

pm.test(‘\nGet minimal ticket payin.’ + ‘\n\nRequest url:\n’ + request.method + ’ ’ + ReqUrl + ‘\n\nRequest headers:\n’ + ReqHeaders + ‘\n\nRequest body:\n’ + ReqBody + ‘\n\nCode and status:\n’ + JSON.stringify(pm.response.code) + ’ ’ + JSON.stringify(pm.response.status) + ‘\n\n’, function () {
pm.response.to.have.status(200);

const responseJson = pm.response.json();
pm.collectionVariables.set("MinPayIn",responseJson.MinPayIn);

});

Have you had a look at htmlextra?

newman-reporter-htmlextra - npm (npmjs.com)

I’ve been playing around with test names , newman and ADO and the test names are important.

What I currently have is the following in the collection level Tests tab. Which runs for all tests.

// set endpoint to use in test title

const method = pm.info.requestName + " - " + pm.request.url.path.join("/").replace(/^api\//, "");
pm.environment.set("currentMethod", method);

pm.test(`${method} - Status code is 200`, () => {
  pm.response.to.have.status(200);
});

pm.test(`${method} - Response time below 500ms`, () => {
  pm.expect(pm.response.responseTime).to.be.below(500);
});

Then for each request, I pull the end point to use in the title.

//step 1: retrieve end point to include in test title.

var method = pm.environment.get("currentMethod");

Then use this in the test title.

pm.test(`${method} - Short but sweet test name`, () => {

You need to ensure your tests are individual, so the test name is relevant.

So considering the following test.

pm.test(`${method} - Search id eq test`, () => {
    let collectionSearch = (response.DocumentCollections.find(obj => {return obj.id === 'test'}));
    pm.expect(collectionSearch).to.have.property('id');
    pm.expect(collectionSearch).to.be.an('object');
});

If you really want to test that its an object, then have this as its own test, so the test case name can be specific.