Protractor: Reporter Junit

Dibuat pada 28 Agu 2013  ·  42Komentar  ·  Sumber: angular/protractor

Kami ingin menjalankan tes busur derajat di Jenkins, jadi akan sangat berguna jika ada reporter junit (seperti yang dimiliki karma) sehingga status tes dapat dilaporkan oleh Jenkins

feature request

Komentar yang paling membantu

Bagaimana melakukannya di file konfigurasi Anda dengan cara yang hanya sedikit meretas - Saya telah menguji ini dengan rangkaian uji Protractor sendiri:

npm install jasmine-reporters

File konfigurasi Anda:

require('jasmine-reporters');

jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter(
    'outputdir/', true, true));

// The main suite of Protractor tests.
exports.config = {
  seleniumServerJar: './selenium/selenium-server-standalone-2.35.0.jar',
  chromeDriver: './selenium/chromedriver',

  seleniumAddress: 'http://localhost:4444/wd/hub',

  // Spec patterns are relative to this directory.
  specs: [
    '*_spec.js'
  ],

  capabilities: {
    'browserName': 'chrome'
  },

  baseUrl: 'http://localhost:8000',
};

Semua 42 komentar

2 sen saya di sini: jika Anda menggunakan Grunt sebagai alat build Anda, Anda dapat menjalankan tes Busur Derajat Anda menggunakan grunt-jasmine-node dan mengonfigurasinya untuk mendapatkan laporan seperti JUnit!

Bagaimana melakukannya di file konfigurasi Anda dengan cara yang hanya sedikit meretas - Saya telah menguji ini dengan rangkaian uji Protractor sendiri:

npm install jasmine-reporters

File konfigurasi Anda:

require('jasmine-reporters');

jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter(
    'outputdir/', true, true));

// The main suite of Protractor tests.
exports.config = {
  seleniumServerJar: './selenium/selenium-server-standalone-2.35.0.jar',
  chromeDriver: './selenium/chromedriver',

  seleniumAddress: 'http://localhost:4444/wd/hub',

  // Spec patterns are relative to this directory.
  specs: [
    '*_spec.js'
  ],

  capabilities: {
    'browserName': 'chrome'
  },

  baseUrl: 'http://localhost:8000',
};

Apakah itu menerima jalur relatif atau absolut dari direktori. Jalur absolut berfungsi sementara jalur relatif tidak. Saya telah mencoba opsi seperti ../Reports tetapi tidak ada gunanya
jasmine.getEnv().addReporter(
melati baru.JUnitXmlReporter('xmloutput', benar, benar));
},

dieksplorasi dan berfungsi, abaikan komentar terakhir saya

Saya tidak cukup pintar jadi saya berharap folder itu dibuat tetapi pada kenyataannya, folder itu harus dibuat terlebih dahulu.

@juliemr Bagaimana cara menggunakannya dengan dua instance Busur Derajat berjalan secara paralel, misalnya melalui grunt-concurrent ? Ini diperlukan agar kami dapat menjalankan tes di Firefox & Chrome secara bersamaan tetapi itu akan membuat satu XML menggantikan yang lain yang akan membingungkan Jenkins.

Mungkin Busur Derajat harus tahu cara berjalan Paralel untuk alasan seperti itu, mirip dengan apa yang Karma lakukan?

@mzgol Sudahkah Anda mencoba membuat setiap target berjalan sebagai tugas bersamaan yang menghasilkan laporan junit xml yang berbeda berdasarkan platform? Anda bisa membuat folder keluaran baru berdasarkan nama target.

Anda mungkin juga ingin melihat target multi-konfigurasi di Jenkins yang memungkinkan Anda menjalankan langkah-langkah pembangunan secara paralel masing-masing dengan lingkungan yang bersih. Ini juga memiliki fitur bagus seperti buildstone dan memungkinkan Anda untuk mencekik konkurensi lebih baik daripada mendengus.

Apakah ada konfigurasi serupa untuk moka? (karena saya tidak menggunakan Jasmine)

@mzgol Saya mencoba saran dari jvandyke (terima kasih) dan itu berfungsi dengan baik untuk saya:

onPrepare: function(){
        require('jasmine-reporters');
        var capsPromise = browser.getCapabilities();
        capsPromise.then(function(caps){
            var browserName = caps.caps_.browserName.toUpperCase();
            var browserVersion = caps.caps_.version;
            var prePendStr = browserName + "-" + browserVersion + "-";
            jasmine.getEnv().addReporter(new
jasmine.JUnitXmlReporter("protractor_output", true, true,prePendStr));
        });
 },

Terima kasih. Ini bekerja untuk saya juga:

mempersiapkan: fungsi(){
membutuhkan('wartawan melati');
var capsPromise = browser.getCapabilities();
capsPromise.then(fungsi(caps){
var browserName = caps.caps_.browserName.toUpperCase();
var browserVersion = caps.caps_.version;
var prePendStr = browserName + "-" + browserVersion + "-";
jasmine.getEnv().addReporter(baru
jasmine.JUnitXmlReporter("protractor_output", benar, benar,prePendStr));
});
},

Saya telah membuat reporter html di atas ini. Tolong beri tahu saya komentar Anda
https://github.com/jintoppy/protractor-html-screenshot-reporter

Mungkin ide untuk menambahkan pembuatan folder ke dokumen karena saya juga tersandung @tracycummins !

@juliemr Lelah semua opsi yang tercantum dalam sampel. Saya mendapatkan kesalahan ini. Setiap petunjuk dihargai

/home/jack/prototype/conf.js:19
jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('xmloutput', true, true));
^
TypeError: undefined bukan fungsi
di export.config.onPrepare (/home/jack/prototype/conf.js:19:33)
di Runner.runFilenamesOrFns_ (/home/usr/lib/node_modules/protractor/lib/runner.js:64:9)
di Runner.runTestPreparers (/home/usr/lib/node_modules/protractor/lib/runner.js:91:8)
di runner.controlFlow.execute.then.jasmineNodeOpts (/home/usr/lib/node_modules/protractor/lib/frameworks/jasmine.js:39:12)
di webdriver.promise.ControlFlow.runInNewFrame_ (/home/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1539:20)
di webdriver.promise.ControlFlow.runEventLoop_ (/home/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1404:8)
di pembungkus sebagai _onTimeout
di Timer.listOnTimeout sebagai waktu habis
==== tugas asinkron ====
menjalankan pembuat tes
di Object.exports.run (/home/usr/lib/node_modules/protractor/lib/frameworks/jasmine.js:38:24)
di driverprovider_.setupEnv.then.then.then.testResult (/home/usr/lib/node_modules/protractor/lib/runner.js:233:28)
di _fulfilled (/home/usr/lib/node_modules/busur derajat/node_modules/q/q.js:797:54)
di self.promiseDispatch.done (/home/usr/lib/node_modules/protractor/node_modules/q/q.js:826:30)
di Promise.promise.promiseDispatch (/home/usr/lib/node_modules/protractor/node_modules/q/q.js:759:13)
di /home/usr/lib/node_modules/busur derajat/node_modules/q/q.js:525:49
di flush (/home/usr/lib/node_modules/busur derajat/node_modules/q/q.js:108:17)
di process._tickCallback (node.js:423:13)
di Function.Module.runMain (module.js:499:11)


// Contoh file konfigurasi.
export.config = {
// Alamat server Selenium yang sedang berjalan.
seleniumAddress: ' http://localhost :4444/wd/hub',
allScriptsTimeout: 30000,
// Kemampuan untuk diteruskan ke instance webdriver.
kemampuan: {
'nama browser': 'firefox'
},

// Pola spesifikasi relatif terhadap arus yang bekerja secara langsung ketika
// busur derajat dipanggil.
spesifikasi: ['example_spec.js'],

// Opsi yang akan diteruskan ke Jasmine-node.
mempersiapkan: fungsi() {
membutuhkan('wartawan melati');
jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('xmloutput', true, true));
},

// Opsi yang akan diteruskan ke Jasmine-node.
jasmineNodeOpts: {
showColors: benar,
defaultTimeoutInterval: 30000
}
};

hai @jkmurthy

Saya mengalami masalah yang sama persis. Dalam versi terbaru [email protected] , mereka mengubah nama modul. Tidak ada dokumentasi tentang ini, tetapi ada di file ini.

https://github.com/larrymyers/jasmine-reporters/blob/master/src/junit_reporter.js

  • Penggunaan:

    • jasmine.getEnv().addReporter(jasmineReporters baru.JUnitXmlReporter(opsi);

Tetap saja saya tidak bisa membuatnya berfungsi karena dikatakan modul 'jasmineReporters' tidak terdefinisi.

Jadi saya beralih ke versi [email protected] yang lebih lama, itu bekerja dengan sempurna. Pastikan Anda membuat direktori mana pun yang Anda rujuk sebagai output dalam opsi reporter.

Turunkan reporter melati ke 0,4.1 tidak berhasil
Mencoba dengan
mempersiapkan: fungsi() {
var folderName = (Tanggal baru()).toString().split(' ').splice(1, 4).join(' ');
var mkdirp = membutuhkan('mkdirp');
var folder baru = "./laporan/" + namafolder;
membutuhkan('wartawan melati');

            mkdirp(newFolder, function(err) {
              if (err) {
                console.error(err);
              } else {
                jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter(newFolder, true, true));
              }
            });
          },

Belum beruntung

Ini jelas menjadi masalah bagi saya. Menggunakan melati-reporter 2.0 saya mendapatkan
D:\HgBuild\TPSOneSearch\Unstable\Tyler.TPS.OneSearch\Tyler.TPS.Web.OneSearch\app
\test\e2e\oneSearchChromeConf.js:29
jasmine.getEnv().addReporter(jasmine baru.JUnitXmlReporter(uri, t
rue, benar, ''));
^
TypeError: undefined bukan fungsi.

mengubah "new jasmine.JUnitXmlReporter" menjadi "jasmineReporters.JUnitXmlReporter" menghasilkan jasmineReporters tidak ditentukan.

Jika saya mengembalikan melati-reporter kembali ke 0.4.1 itu bekerja dengan sangat baik.

jasmine-reporters 2.0 memiliki API yang berbeda dari 1.x; Anda tidak bisa begitu saja memperbarui secara membabi buta; sesuaikan permintaan Anda.

Melihat komentar di file junit_reporter.js untuk JUnitXmlReporter, saya telah menyiapkan file conf saya sebagai berikut:

onPrepare: fungsi () {
membutuhkan('wartawan melati');
opsi var = {
savePath: 'some-file-path',
konsolidasi: benar,
useDotNotation: benar
};
jasmine.getEnv().addReporter(jasmineReporters baru.JUnitXmlReporter(opsi));
},

ini harus bekerja bukan?
Saya mendapatkan kesalahan berikut "ReferenceError: jasmineReporters tidak ditentukan"

/**
* Menghasilkan JUnit XML untuk menjalankan spesifikasi yang diberikan. Ada berbagai pilihan
* untuk mengontrol di mana hasil ditulis, dan nilai defaultnya adalah
* atur untuk membuat file .xml sesedikit mungkin. Dimungkinkan untuk menyimpan
* file XML tunggal, atau file XML untuk setiap level teratas describe , atau
* File XML untuk setiap describe terlepas dari pembuatannya.
*
* Penggunaan:
*
* jasmine.getEnv().addReporter(jasmineReporters baru.JUnitXmlReporter(opsi);
*
* @param {objek} [opsi]
* @param {string} [savePath] direktori untuk menyimpan file (default: '')
* @param {boolean} [consolidateAll] apakah akan menyimpan semua hasil tes dalam a
* file tunggal (default: benar)
* CATATAN: jika benar, {filePrefix} diperlakukan sebagai nama file lengkap (tidak termasuk
* ekstensi)
* @param {boolean} [konsolidasi] apakah akan menyimpan deskripsi bersarang di dalam
* file yang sama dengan induknya (default: true)
* CATATAN: true tidak melakukan apa-apa jika konsolidasiSemua juga benar.
* CATATAN: false juga menyetel konsolidasiAll ke false.
* @param {boolean} [useDotNotation] apakah akan memisahkan nama suite dengan
* titik bukan spasi, yaitu "Class.init" bukan "Class init" (default: true)
* @param {string} [filePrefix] adalah nilai string yang ditambahkan ke
* file keluaran xml (default: junitresults-)
* CATATAN: jika konsolidasi Semua benar, defaultnya adalah "junitresults" dan
* ini menjadi nama file yang sebenarnya, yaitu "junitresults.xml"
*/

@john-bridges Bisakah Anda membungkus kode Anda dengan tanda centang kembali? Sulit untuk membaca tanpanya.

@john-bridges Nah, tidak heran variabel jasmineReporters tidak terdefinisi karena Anda memang tidak mendefinisikannya. Anda perlu menetapkan modul:

var jasmineReporters = require('jasmine-reporters');

@mzgol Saya idiot, bekerja seperti pesona. Terima kasih atas bantuan Anda, saya menghargainya.

Versi sebelumnya dari jasmine-reporters melampirkan reporter langsung ke objek jasmine ; sekarang melekat pada ekspornya sendiri yang jauh lebih baik.

Saya melihat dari mana kebingungan itu berasal. ;)

@mzgol saya setuju, cara yang jauh lebih baik, terima kasih lagi.

[email protected] mendukung Jasmine 2.x dan, seperti yang diamati / dibahas di atas, memiliki sintaks dan titik masuk yang berbeda (pada objeknya sendiri vs objek global jasmine ). Yang mengatakan, itu _only_ mendukung Jasmine 2.x, bukan Jasmine 1.x yang digunakan busur derajat. Jadi, sementara Anda mungkin bisa mendapatkan kesalahan masa lalu dalam konfigurasi busur derajat Anda dengan melakukan var jasmineReporters = require('jasmine-reporters'); new jasmineReporters.JUnitXmlReporter(/*...*/); , Anda akan kesulitan mendapatkan hasil yang berarti karena menunggu acara Jasmine 2.x dan antarmuka reporter.

Cara yang tepat untuk membuat JUnitXmlReporter bekerja dengan Jasmine 1.x adalah dengan sedikit memodifikasi instruksi asli @juliemr :

npm install jasmine-reporters@~1.0.0

Kemudian ikuti sisa instruksinya seperti biasa.

Saya telah merombak README melati-reporters untuk mengatasi perbedaan [email protected] dari [email protected] . Saya juga menambahkan bagian khusus tentang menggunakan reporter melati dengan Busur Derajat karena pertanyaannya sering muncul.

Terima kasih @ksraja untuk menunjukkan dokumentasi yang sangat kurang.

Mengapa masalah ini terus ditutup, jelas bahwa ini masih menjadi masalah.

    onPrepare: function() {

        require('jasmine-reporters');
        jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('test-target/', true, true));

        browser.driver.get('http://localhost:9000');
        require('./test/e2e/models/login-page').login();
    },

Melempar kesalahan:

Running "protractor:e2e" (protractor) task

/Users/212400520/PredixExperience/predix-dashboard/node_modules/jasmine-reporters/src/jasmine.console
_reporter.js:2
    if (! jasmine) {
          ^
ReferenceError: jasmine is not defined
    at /Users/212400520/PredixExperience/predix-dashboard/node_modules/jasmine-reporters/src/jasmine.
console_reporter.js:2:11
    at Object.<anonymous> (/Users/212400520/PredixExperience/predix-dashboard/node_modules/jasmine-re
porters/src/jasmine.console_reporter.js:144:3)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/212400520/PredixExperience/predix-dashboard/node_modules/jasmine-re
porters/src/load_reporters.js:1:63)
    at Module._compile (module.js:456:26)
>> 
Fatal error: protractor exited with code: 8

@jonniespratley Saya menemukan bahwa npm install jasmine-reporters menginstal versi 1.0.1 secara default.
Jadi, pastikan Anda telah menginstal versi terbaru jasmine-reporters . Sebagai contoh

npm install jasmine-reporters@~2.0.3 --save-dev

Setelah itu, saya memperbarui konfigurasi busur derajat sebagai berikut:

var jasmineReporters = require('jasmine-reporters');
exports.config = {
    framework: 'jasmine2',
    //...  
    //Other configurations...
    //...  
    onPrepare: function () {
        jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({
            savePath: '..',
            consolidateAll: false
        }));
    },
    jasmineNodeOpts: {
        showColors: true,
        defaultTimeoutInterval: 60000,
        print: function() {}
    }
};

Sekarang melati-reporter bekerja dengan baik untuk saya.

Dalam dokumentasi busur derajat untuk memutakhirkan ke kerangka jasmine2, di bagian reporter alangkah baiknya jika jawaban @luixaviles didokumentasikan. Saya tidak dapat membayangkan bahwa saya satu-satunya yang mengalami kesulitan mencari cara untuk mendapatkan laporan junit untuk jasmine2. Memang, setelah saya menemukan ini dan membaca ulang dokumentasi saat ini lebih jelas, tapi awalnya saya salah membacanya berarti melati-reporter tidak bekerja (sama sekali) dengan jasmine2. Memiliki jawaban di atas, atau tautan ke readme reporter melati akan membuat segalanya menjadi lebih mudah.

mencoba laporan melati
var jasmineReporters = membutuhkan('jasmine-reporters');
jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter('../TestReports/test', benar, benar));

itu berjalan dengan baik, tetapi tidak ada file xml yang dibuat

saya mencoba membuka https://github.com/angular/protractor/blob/master/spec/junitOutputConf.js , tetapi memberikan 404

@spatchamatla Contoh Anda menggunakan kombinasi aneh sintaksis [email protected] (argumen berurutan) dengan apa yang tampak seperti reporter [email protected] (jasmineReporters.JUnitXmlReporter vs jasmine.JUnitXmlReporter).

Coba gunakan sintaks yang benar untuk membuat reporter dan lihat apakah Anda melangkah lebih jauh.

Dimodifikasi dari contoh di README reporter melati:

var junitReporter = new jasmineReporters.JUnitXmlReporter({
    savePath: '../TestReports/test'
});
jasmine.getEnv().addReporter(junitReporter);

Pastikan folder '../TestReports/test' ada karena menurut saya gagal
diam-diam juga.

Pada hari Rabu, 15 Apr 2015 jam 16.33, Ben Loveridge [email protected]
menulis:

@spatchamatla https://github.com/spatchamatla Contoh Anda menggunakan a
kombinasi aneh sintaks [email protected] (argumen berurutan)
dengan apa yang tampak seperti reporter [email protected]
(jasmineReporters.JUnitXmlReporter vs jasmine.JUnitXmlReporter).

Coba gunakan sintaks yang benar untuk membuat reporter dan lihat apakah Anda mendapatkan
lebih jauh.

Dimodifikasi dari contoh di README reporter melati:

var junitReporter = new jasmineReporters.JUnitXmlReporter({
savePath: '../TestReports/test'
});
jasmine.getEnv().addReporter(junitReporter);


Balas email ini secara langsung atau lihat di GitHub
https://github.com/angular/protractor/issues/60#issuecomment -93451490.

Bukan ide yang buruk, meskipun jasmine-reporters akan menggunakan https://github.com/substack/node-mkdirp untuk mencoba dan membuat direktori.

@bloveridge @spenoir , saya menurunkan versi ke [email protected] dan menggunakan yang di bawah ini

   //For junit output reports
        var reporters = require('jasmine-reporters');
        var capsPromise = browser.getCapabilities();
        capsPromise.then(function (caps) {
            var browserName = caps.caps_.browserName.toUpperCase();
            var browserVersion = caps.caps_.version;
            var prePendStr = browserName + "-" + browserVersion + "-";
            jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('Protractor/TestReports', true, true, prePendStr));
        });

itu mulai bekerja, satu-satunya sisi negatifnya adalah membuat folder di direktori home daripada di folder proyek. Ketika saya mencoba menggunakan jalur folder proyek, masih tertulis

Peringatan: penulisan laporan junit gagal untuk '../TestReports', 'CHROME-41.0.2272.118-TestImpersonationPage.xml'. Alasan:
Upaya badak: java tidak ditentukan
Upaya PhantomJ: jendela tidak ditentukan
Upaya NodeJS: EACCES, izin ditolak '/ Pengguna/TestReports'

saya membuat folder secara manual dan masih menampilkan yang di atas di konsol

apakah 'Protractor/TestReports' jalur yang benar dan apakah folder itu ada?

Pada hari Rabu, 15 Apr 2015 jam 17:01, spatchamatla [email protected]
menulis:

@bloveridge https://github.com/bloveridge @spenoir
https://github.com/spenoir , saya menurunkan versi ke [email protected] dan
digunakan di bawah ini

//Untuk laporan keluaran junit
var reporter = membutuhkan('pewarta melati');
var capsPromise = browser.getCapabilities();
capsPromise.then(fungsi (caps) {
var browserName = caps.caps_.browserName.toUpperCase();
var browserVersion = caps.caps_.version;
var prePendStr = browserName + "-" + browserVersion + "-";
jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('Protractor/TestReports', true, true, prePendStr));
});

itu mulai berfungsi, satu-satunya sisi buruknya adalah membuat folder di rumah
direktori daripada di folder proyek. Ketika saya mencoba menggunakan proyek
jalur folder, masih tertulis

Upaya badak: java tidak ditentukan
Upaya PhantomJ: jendela tidak ditentukan
Upaya NodeJS: Argumen ke path.resolve harus berupa string

saya membuat folder secara manual dan masih menampilkan yang di atas di konsol


Balas email ini secara langsung atau lihat di GitHub
https://github.com/angular/protractor/issues/60#issuecomment -93460326.

'Protractor/TestReports' adalah jalur yang telah dibuat di folder rumah, lalu saya gunakan

jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('../TestReports', true, true, prePendStr));

dan saya buat secara manual

screen shot 2015-04-15 at 12 07 09 pm

ketika saya menjalankan tes, itu masih memberi
Peringatan: penulisan laporan junit gagal untuk '../TestReports', 'CHROME-41.0.2272.118-TestImpersonationPage.xml'. Alasan:
Upaya badak: java tidak ditentukan
Upaya PhantomJ: jendela tidak ditentukan
Upaya NodeJS: EACCES, izin ditolak '/ Pengguna/TestReports'

Anda dapat mencoba melonggarkan izin pada folder TestReports, Tidak yakin
Setelah itu.

Pada hari Rabu, 15 Apr 2015 jam 17:10, spatchamatla [email protected]
menulis:

'Protractor/TestReports' adalah jalur yang telah dibuat di folder rumah,
lalu saya menggunakan

jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('../TestReports', true, true, prePendStr));

dan saya buat secara manual

[gambar: tangkapan layar 2015-04-15 pada 12 07 09 pm]
https://cloud.githubusercontent.com/assets/4671240/7163457/278cffa6-e368-11e4-9994-2c0b5d33f07c.png

ketika saya menjalankan tes, itu masih memberi
Peringatan: penulisan laporan junit gagal untuk '../TestReports',
'CHROME-41.0.2272.118-TestImpersonationPage.xml'. Alasan:
Upaya badak: java tidak ditentukan
Upaya PhantomJ: jendela tidak ditentukan
Upaya NodeJS: EACCES, izin ditolak '/ Pengguna/TestReports'


Balas email ini secara langsung atau lihat di GitHub
https://github.com/angular/protractor/issues/60#issuecomment -93466365.

Tentu, Terima kasih @spenoir atas saran dan masukannya

benang yang bagus. banyak membantu.
pikir saya punya masalah - tapi tidak. tidak dapat menemukan cara untuk menghapus :)
terus bekerja dengan baik.

@jkmurthy @ksraja Tampaknya jasmineReports yang terdaftar sebenarnya adalah ekspor dari fungsi yang dibutuhkan.

misalnya,
var jasmineReporters = require('jasmine-reporters');

Contoh pada readme jasmine-reporters berfungsi untuk saya: https://github.com/larrymyers/jasmine-reporters#protractor

Jika Anda hanya membutuhkan keluaran konsol, saya senang dengan https://github.com/bcaudan/jasmine-spec-reporter/blob/master/docs/protractor-configuration.md

@josephdpurcell tautan yang Anda berikan juga berfungsi untuk saya. Ini konfigurasi saya, semoga membantu!
Pastikan Anda telah menginstal paket mkdirp serta paket jasmine 2.x dan jasmine-reporters 2.X lainnya.
Konfigurasi ini membuat folder untuk menghindari kegagalan diam jika folder tidak ada.

   var folderName = ('output_folder');
    var mkdirp = require('mkdirp');
    mkdirp(folderName, function(err) {
      if (err) {
        console.error(err);
       } else {
          var jasmineReporters = require('jasmine-reporters');
          jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({
            consolidateAll: true,
            savePath: folderName,
             filePrefix: 'xmloutput-'
            }));
         }
    });
Apakah halaman ini membantu?
0 / 5 - 0 peringkat