В настоящее время невозможно указать «выходной» файл в качестве аргумента CLI для сохранения отчетов. Средство форматирования JSON, похоже, записывает непосредственно в STDOUT, что может быть проблемой при отладке (с использованием console.log) или в случае сбоя программы, создавая недопустимый JSON.
Было бы желательно, чтобы это работало как огурец в рубине, позволяя сохранять несколько форматов в отдельные выходные файлы.
На самом деле здесь есть две отдельные проблемы:
Я создал отдельную проблему, касающуюся нескольких форматеров.
Жюльен, есть какие-нибудь новости о том, когда мы сможем указать выходной файл HTML?
+1
+1
ПРИВЕТ Я вручную копировал и вставлял содержимое результатов JSON в файл cucumber.json в каталоге данных cucumber-json2report-master, что позволяет мне получить хорошие результаты выполнения, но было бы здорово, если бы cucumber.js может поместить файл в этот каталог, исключив ручной шаг.
Я не особо хочу взламывать версию или создавать форк. Предложения?
Есть новости по этому поводу?
@letshaveyer это звучит как полезная функция для вас. Почему бы вам не отправить запрос на перенос?
Пока это не сработает, вы можете изменить json_formatter.js. Это хитрость, но намного проще, чем каждый раз копировать вставку. Мы также добавляем метку времени к имени файла.
Измените объект formatterIo, чтобы он также записывал в файл
var formatterIo = {
write: function (строка) {
self.log (строка);
fs.writeFileSync ('путь \ test_results.json', строка); // добавлен
}
};
Это простая вещь, которую можно сделать с помощью простых перенаправлений каналов в unix и bash.
cucumber-js --format=json | tee wow.json
+1, чтобы закрыть
Мы не можем его протрубить. Мы используем файл конфигурации транспортира для установки cucumberjs
параметры
CucumberOpts: {
Формат: 'JSON',
Теги: ' @testRun '
}
У нас есть файл bat, который использует узел для запуска транспортира.
Брэд
5 августа 2014 г. в 9:54 «Сэм Сакконе» [email protected] написал:
Это простая вещь, которую можно сделать с помощью простых перенаправлений каналов в unix.
огурец-js --format = json | тройник wow.json
+1, чтобы закрыть
-
Ответьте на это письмо напрямую или просмотрите его на GitHub
https://github.com/cucumber/cucumber-js/issues/90#issuecomment -51199997.
Интересно @ brad8118, похоже, это особенность транспортира, а не огурца.
транспортир вызывает огурец, и за то, что он делает с выводом, отвечает транспортир, а не огурец.
Это только мои первые мысли, открытые для идей. Я просто пытаюсь предотвратить расползание функций библиотеки огурцов.
@ brad8118 Я использую транспортир. Я действительно не хочу путать исходный код. Есть ли способ добавить для этого хук или файл поддержки?
var formatterIo = {
write: function(string){
self.log(string);
fs.writeFileSync('path\test_results.json', string); // added
}
};
Использование транспортира
@ jlin412 , я не знаю, как передать / получить создаваемый json без изменения cucumber.js.
Я также подумал о функции очистки в нашем конфигурационном файле транспортира json. Но он передает только 1 или 0.
// ----- The cleanup step -----
//
// A callback function called once the tests have finished running and
// the webdriver instance has been shut down. It is passed the exit code
// (0 if the tests passed or 1 if not).
onCleanUp: function () {}
Похоже, это уже сделано в другой вилке. николассеншал @ b337b18
@ jlin412, когда вы мило вставляете
@ brad8118 Я использую перенаправление для отправки вывода json в файл из транспортира, а затем у меня есть функция задачи grunt для фильтрации формата json с использованием соответствия регулярному выражению:
grunt.registerTask('jsonOutput', function () {
var testOutput = grunt.file.read('test/e2e/tmp/cucumberOutput.json');
var json = testOutput.match(/(\[\s+\{[\s\S]*\}\s+\]\s+\}\s+\]\s+\}\s+\])/)[1];
grunt.file.write('test/e2e/output/cucumberReport.json', json);
});
Затем я использую сэндвич с огурцом для преобразования в HTML (проект Java).
http://www.farooqyousuf.net/2013/12/generating-reports-with-cucumber-sandwich/
Я немного изменил кодовую базу сэндвича с огурцом, чтобы я мог вызывать его по запросу, а не в зависимости от прослушивателя событий файла.
Привет, ребята, просто пытаетесь понять, когда это будет возвращено мастеру cucumber-js? Мне нужна эта функциональность сейчас, но я опасаюсь полагаться на разветвленную ветку. Не могли бы вы дать мне представление о том, когда он будет доступен в cucumber-js master, и дать краткое представление о том, разумно ли пока что полагаться на одну из разветвленных веток? Спасибо, Фрейзер.
+1 - Я знаю, что не только я пережил некоторые сумасшедшие попытки использовать огурец с транспортиром, когда флаг для записи в файл был бы ооочень полезным. Я не понимаю, почему запись в файл считается нарушением функций. Огурец предназначен только для того, чтобы разработчики могли визуально проверять качество своей работы? Разве мы не должны использовать огурец в рамках более крупной тестовой среды? Этого не может быть ...
Привет,
Кто-нибудь может мне помочь, я не нашел, как правильно настроить вывод json в файл.
Я использую глоток + транспортир + огурец
заранее спасибо
@cedriclombardot
Есть способ выбрать каталог для вывода json из транспортира из 1.5.0, хотя я его не использовал.
В настоящее время я добавил ловушку, чтобы можно было использовать вместе pretty и json formatter:
module.exports = function JsonOutputHook() {
var Cucumber = require('cucumber');
var JsonFormatter = Cucumber.Listener.JsonFormatter();
var fs = require('fs');
JsonFormatter.log = function (json) {
fs.writeFile('test/e2e/output/cucumberReport.json', json, function (err) {
if (err) throw err;
console.log('json file location: test/e2e/output/cucumberReport.json');
});
};
this.registerListener(JsonFormatter);
};
Я не видел, чтобы resultJsonOutputFile
кажется, работает волшебно и готово
перейти в xml с помощью: https://www.npmjs.com/package/protractor-cucumber-junit
Седрик
2015-01-02 18:34 GMT + 01: 00 Джейсон Лин [email protected] :
@cedriclombardot https://github.com/cedriclombardot
Есть способ выбрать каталог для вывода json из транспортира из
1.5.0, хотя я им не пользовался.
В настоящее время я добавил ловушку, чтобы можно было использовать вместе pretty и json formatter:module.exports = function JsonOutputHook () {
var Cucumber = require ('огурец');
var JsonFormatter = Cucumber.Listener.JsonFormatter ();
var fs = require ('fs');JsonFormatter.log = function (json) {
fs.writeFile ('test / e2e / output / cucumberReport.json', json, function (err) {
если (ошибка) бросить ошибку;
console.log ('расположение файла json: test / e2e / output / cucumberReport.json');
});
};this.registerListener (JsonFormatter);
};-
Ответьте на это письмо напрямую или просмотрите его на GitHub
https://github.com/cucumber/cucumber-js/issues/90#issuecomment -68544890.
+1
Итак, не могли бы мы получить обновленную информацию о том, когда это будет передано мастеру? В настоящее время я использую cucumberjs минус транспортир (или любую другую структуру веб-тестирования в стиле селена), поэтому мне нужны cucumberjs для создания форматированного отчета.
Есть новости по этому поводу? Это вызвало у нас достаточно проблем, чтобы подумать о том, чтобы исправить этот модуль или посмотреть на parallel-cucumber (который обрабатывает этот случай).
cucumberjs -> webdriverio
+1
Я следую этому описанию, чтобы сохранить json-формат cucumberjs.
https://github.com/mrooding/gulp-protractor-cucumber-html-report#saving -cucumberjs-json-to-disk-when-using-protractor
Это работает
если кому-то не хватает счастливого часа из-за отчетов cucumber js, мы используем cucumber-html-reports
support.registerHandler('AfterFeatures', () => {
///* creates report
var options = {
theme: 'bootstrap',
jsonFile: 'cucumberReports/report.json',
output: 'cucumberReports/report.html',
reportSuiteAsScenarios: true,
launchReport: true,
metadata: {
"App Version":"0.3.2",
"Test Environment": "POC",
//"Browser": "Chrome 54.0.2840.98",
//"Platform": "Windows 10",
//"Parallel": "Scenarios",
//"Executed": "Remote"
}
};
reporter.generate(options);
});
обновите ваш protractor.conf.cucumberOpts
format: 'json:cucumberReports/report.json',
Этот поток был автоматически заблокирован, поскольку после его закрытия в последнее время не было никаких действий. Пожалуйста, откройте новую проблему для связанных ошибок.
Самый полезный комментарий
@cedriclombardot
Есть способ выбрать каталог для вывода json из транспортира из 1.5.0, хотя я его не использовал.
В настоящее время я добавил ловушку, чтобы можно было использовать вместе pretty и json formatter: