Cucumber-js: Pelaporan - Keluaran ke file

Dibuat pada 2 Okt 2012  ·  29Komentar  ·  Sumber: cucumber/cucumber-js

Saat ini tidak mungkin untuk menentukan file "output" sebagai argumen CLI untuk menyimpan laporan. Pemformat JSON tampaknya menulis langsung ke STDOUT, yang dapat menjadi masalah saat men-debug (menggunakan console.log) atau jika program gagal, menghasilkan JSON yang tidak valid.

Akan lebih baik jika ini bekerja seperti mentimun di ruby, memungkinkan banyak format disimpan ke file output yang terpisah.

Komentar yang paling membantu

@cedriclombardot

Ada cara untuk memilih direktori ke output json dari busur derajat dari 1.5.0 meskipun saya belum menggunakannya.
Saat ini, saya menambahkan pengait sehingga saya dapat menggunakan formatter cantik dan json bersama-sama:

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);
};

Semua 29 komentar

Sebenarnya ada dua masalah terpisah di sini:

  1. redirect formatter (tidak hanya JSON tetapi juga _pretty_, _progress_, _html_, dll.) ke file lain selain STDOUT;
  2. memungkinkan untuk beberapa formatter dalam satu kali proses.

Saya membuat masalah terpisah mengenai beberapa formatter.

Julien apakah ada berita kapan kita bisa menentukan file output HTML?

+1

+1

HI Saya telah secara manual menyalin dan menempelkan konten hasil JSON ke file mentimun.json di direktori data mentimun-json2report-master, yang memungkinkan saya untuk mendapatkan beberapa hasil yang bagus dari menjalankan, tetapi akan lebih bagus jika mentimun.js dapat menempatkan file di direktori itu, sehingga menghilangkan langkah manual.

Saya tidak benar-benar ingin meretas versi atau membuat garpu. Saran?

Ada pembaruan tentang ini?

@letshaveyer ini terdengar seperti fitur yang berguna bagi Anda. Mengapa Anda tidak mengirim permintaan tarik?

Sampai ini berfungsi, Anda dapat memodifikasi json_formatter.js. Ini adalah peretasan tetapi jauh lebih mudah daripada menyalin tempel setiap saat. Kami juga menambahkan cap waktu ke nama file.

Ubah objek formatterIo untuk juga menulis ke file

var formatterIo = {
tulis: fungsi(string){
diri.log(string);
fs.writeFileSync('path\test_results.json', string); // ditambahkan
}
};

Ini adalah hal sederhana untuk dilakukan dengan pengalihan pipa sederhana di unix dan bash

cucumber-js --format=json | tee wow.json

+1 untuk menutup

Kami tidak bisa menyalurkannya. Kami menggunakan file konfigurasi busur derajat untuk mengatur mentimunjs
pilihan

Pilihan Mentimun: {
Format: 'JSON',
Tag: ' @testRun '
}

Kami memiliki file bat yang menggunakan node untuk memulai busur derajat.

brad
Pada 5 Agustus 2014 09:54, "Sam Saccone" [email protected] menulis:

Ini adalah hal sederhana untuk dilakukan dengan pengalihan pipa sederhana di unix

mentimun-js --format=json | tee wow.json

+1 untuk menutup


Balas email ini secara langsung atau lihat di GitHub
https://github.com/cucumber/cucumber-js/issues/90#issuecomment -51199997.

Menarik @brad8118 ini sepertinya akan menjadi fitur busur derajat dan bukan mentimun.

busur derajat memanggil mentimun dan apa yang dilakukannya dengan output adalah tanggung jawab busur derajat dan bukan mentimun.

Itu hanya pemikiran awal saya, terbuka untuk ide. Saya hanya mencoba untuk mencegah fitur creep dari lib mentimun.

@ brad8118 saya menggunakan busur derajat. Saya tidak benar-benar ingin mengacaukan kode sumber. Apakah ada cara agar saya dapat menambahkan file pengait atau dukungan untuk melakukan itu?

var formatterIo = {
write: function(string){
self.log(string);
fs.writeFileSync('path\test_results.json', string); // added
}
};

@samccone busur derajat menggunakan pelaporan asli tergantung kerangka kerja yang Anda gunakan. Jika Anda menggunakan Jasmine, itu akan menggunakan pelaporan di Jasmine. Jika Anda menggunakan kerangka mentimun, itu akan menggunakan pelaporan di mentimun.js, yang saat ini tidak memiliki cara untuk menghasilkan file.

@jlin412 , saya tidak tahu cara melewatkan/mendapatkan json yang dihasilkan tanpa mengubah mentimun.js.
Saya juga memikirkan tentang fungsi pembersihan di file konfigurasi json busur derajat kami. Tapi itu hanya melewati 1 atau 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 () {}

Sepertinya ini sudah dilakukan di garpu lain. nicolassenechal@b337b18

@jlin412 saat Anda lucu dan menempelkan json. Apa yang kamu lakukan dengan itu? Apakah Anda mengubahnya menjadi html?

@ brad8118 Saya menggunakan pengalihan untuk mengirim output json ke file dari busur derajat dan kemudian saya memiliki fungsi tugas kasar untuk memfilter format json menggunakan kecocokan regex:

  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);
  });

Lalu saya menggunakan sandwich mentimun untuk mengonversi ke html (Proyek java).
http://www.farooqyousuf.net/2013/12/generating-reports-with-cucumber-sandwich/

Saya membuat sedikit modifikasi pada basis kode sandwich mentimun sehingga saya dapat memanggilnya sesuai permintaan daripada bergantung pada pendengar acara file.

Hai Teman-teman, hanya mencoba untuk memahami kapan ini akan dilakukan kembali ke Master mentimun-js? Saya membutuhkan fungsi ini sekarang, tetapi saya khawatir mengandalkan cabang bercabang. Bisakah Anda memberi saya gambaran kapan itu akan tersedia di master ketimun-js dan hanya ide singkat tentang apakah bijaksana untuk mengandalkan salah satu cabang bercabang sementara itu? Terima kasih, Fraser.

+1 -- Saya tahu saya tidak sendirian dalam melewati beberapa perubahan gila untuk menggunakan mentimun dengan busur derajat ketika bendera untuk menulis ke file akan sangat membantu. Saya tidak mengerti mengapa menulis ke file dianggap sebagai fitur merayap. Apakah mentimun hanya dimaksudkan untuk memungkinkan pengembang memeriksa kualitas pekerjaan mereka secara visual? Bukankah kita seharusnya menggunakan mentimun dalam lingkup lingkungan pengujian yang lebih besar? Ini tidak bisa begitu...

Hai,

Siapa pun dapat membantu saya, saya belum menemukan cara mengkonfigurasi output json dengan benar ke dalam file.
Saya menggunakan tegukan + busur derajat + mentimun

Terima kasih sebelumnya

@cedriclombardot

Ada cara untuk memilih direktori ke output json dari busur derajat dari 1.5.0 meskipun saya belum menggunakannya.
Saat ini, saya menambahkan pengait sehingga saya dapat menggunakan formatter cantik dan json bersama-sama:

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);
};

Saya belum pernah melihat resultJsonOutputFile tampaknya berfungsi dengan baik dan siap
untuk masuk xml dengan: https://www.npmjs.com/package/protractor-cucumber-junit

Cédric

02-01-2015 18:34 GMT+01:00 Jason Lin [email protected] :

@cedriclombardot https://github.com/cedriclombardot

Ada cara untuk memilih direktori ke output json dari busur derajat dari
1.5.0 meskipun saya belum menggunakannya.
Saat ini, saya menambahkan pengait sehingga saya dapat menggunakan formatter cantik dan json bersama-sama:

module.exports = fungsi JsonOutputHook() {
var Mentimun = membutuhkan('mentimun');
var JsonFormatter = Mentimun.Listener.JsonFormatter();
var fs = membutuhkan('fs');

JsonFormatter.log = fungsi (json) {
fs.writeFile('test/e2e/output/cucumberReport.json', json, fungsi (err) {
jika (err) melempar err;
console.log('lokasi file json: test/e2e/output/cucumberReport.json');
});
};

this.registerListener(JsonFormatter);
};


Balas email ini secara langsung atau lihat di GitHub
https://github.com/cucumber/cucumber-js/issues/90#issuecomment -68544890.

+1

Jadi bisakah kami mendapatkan pembaruan tentang kapan ini akan berkomitmen untuk dikuasai? Saat ini saya menggunakan mentimun js minus busur derajat (atau kerangka kerja pengujian web gaya Selenium lainnya) jadi saya perlu mentimun untuk menghasilkan laporan yang diformat.

Ada pembaruan tentang ini? Ini telah menyebabkan kami cukup banyak masalah untuk berpikir tentang menambal modul ini atau melihat mentimun paralel (yang menangani kasus ini).

mentimunjs -> webdriverio

+1

Saya mengikuti deskripsi ini untuk menyimpan format mentimunjs json.

https://github.com/mrooding/gulp-protractor-cucumber-html-report#saving -cucumberjs-json-to-disk-when-using-protractor

  1. Tambahkan pendengar ke formatter CucumberJS JSON dan simpan ke file
  2. protractor.conf.js menambahkan referensi ke hook listener

Ini pekerjaan

jika ada yang melewatkan happy hour karena laporan mentimun js, kami menggunakan laporan mentimun-html

  1. perbarui hooks.js Anda
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);
  });

perbarui busur derajat Anda.conf.cucumberOpts
format: 'json:cucumberReports/report.json',

Utas ini telah dikunci secara otomatis karena tidak ada aktivitas terbaru setelah ditutup. Silakan buka edisi baru untuk bug terkait.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

protoman92 picture protoman92  ·  3Komentar

kozhevnikov picture kozhevnikov  ·  6Komentar

NoNameProvided picture NoNameProvided  ·  5Komentar

lamartire picture lamartire  ·  6Komentar

dblooman picture dblooman  ·  7Komentar