Что ж, наконец-то я узнал, как действовать (пока не чисто, но достаточно для моей цели):
Я воздействую на файл C:\Users\<myself>\AppData\Roaming\npm\node_modules\newman\lib\reporters\junit\index.js
Данные запроса и ответ можно восстановить из объекта «выполнение»:
stringExecutions = JSON.stringify(executions); //provide information about the arguments of the object "executions"
отсюда я могу получить общую информацию, проанализировав этот элемент с помощью json и извлекая то, что хочу:
jsonExecutions = JSON.parse(stringExecutions)
jsonExecutions[0].response._details.code // gives me the http return code,
jsonExecutions[0].response._details.name // gives me the status,
jsonExecutions[0].response._details.detail //gives a bit more details
Данные об ошибках (на уровне тестового примера / набора тестов) можно восстановить из объекта err.error:
stringData = JSON.stringify(err.error); jsonData = JSON.parse(stringData);
из этого я извлекаю нужные мне данные, т.е.
jsonData.name // the error type
jsonData.message // the error detail
jsonData.stacktrace // the error stack
кстати, в исходном файле стек не может быть отображен, так как в error.err нет аргумента 'stack' (он называется 'stacktrace').
Наконец, данные о сбоях (на уровне тестового шага / тестового сценария) могут быть восстановлены из объекта «сбои»:
stringFailure = JSON.stringify(failures); jsonFailure = JSON.parse(stringFailure);
из этого я извлекаю:
jsonFailure[0].name // the failure type
jsonFailure[0].stack // the failure stack
Для своей цели я добавляю детали ответа от jsonExecutions к своим данным об ошибках в тестовом пакете, которые в XML-отчете гораздо более подробны, чем раньше.
Если есть более чистый / умный способ сделать это, не стесняйтесь сказать мне, я буду благодарен
Следующий шаг: очистите его, создав собственный репортер. :)
Александр
person
A.Joly
schedule
05.07.2017