• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Jaranguda

Belajar Mengajar

  • Home
  • Sponsor/Jasa
  • Tentang

Membuat Custom Reporter Cypress dengan Mocha

Last Updated on 12 October 2021 By tommy Leave a Comment

Di Cypress kita membuat custom reporter dengan bantuan Mocha. Sebagai contoh sederhana kita akan membuat reporter yang menampilkan Nama Test, Status
Bila test berhasil muncul PASS, dan begitu test gagal muncul FAIL
cypress http status

Saat tutorial ini dibuat versi Cypress 8.6.0 dan Mocha 9.1.2

Install Cypress

mkdir ~/custom-reporter
cd ~/custom-reporter
# buat project baru
npm init
# install cypress
npm install cypress@latest

buat folder untuk tempat membuat test Cypress dan juga reporter baru nantinya

mkdir -p cypress/{integration,reporter}

Buat file baru cypress/integration/check-http.spec.js

let url_satu = "https://example.com"
let url_dua = "https://wikipedia.com"
let url_tiga = "https://kadfjasdfjasdjfsadfdio1.com"
 
describe('Situs 1 ' , () => {
  it('Cek HTTP STATUS 200 : ' + url_satu, () => {
    cy.request(`${url_satu}`).then((response) => {
      expect(response.status).to.eq(200)
    })
 
  })
})
 
describe('Situs 2 ' , () => {
  it('Cek HTTP STATUS 200 : ' + url_dua, () => {
    cy.request(`${url_dua}`).then((response) => {
      expect(response.status).to.eq(200)
    })
 
  })
})
 
describe('Situs 3 ' , () => {
  it('Cek HTTP STATUS 200 : ' + url_tiga, () => {
    cy.request(`${url_tiga}`).then((response) => {
      expect(response.status).to.eq(200)
    })
 
  })
})

testing tersebut sudah bisa langsung dijalankan

$(npm bin)/cypress run

default cypress report

Install Mocha

Dari folder project cypress anda, install mocha

npm install mocha

Buat file cypress/reporter/status-reporter.js, yang berisi

'use strict';
 
const Mocha = require('mocha');
 
const {
  EVENT_TEST_FAIL,
  EVENT_TEST_PASS,
} = Mocha.Runner.constants;
 
class StatusReporter {
  constructor(runner) {
 
    runner
      .on(EVENT_TEST_PASS, test => {
        const data = `${test.fullTitle()}, ${test.duration}, PASS`
        console.log(data);
      })
      .on(EVENT_TEST_FAIL, (test, err) => {
        const data = `${test.fullTitle()}, ${test.duration}, FAILED`
        console.log(data);
      })
  }
 
}
 
module.exports = StatusReporter;

dari contoh code diatas, event yang akan kita ambil adalah sewaktu test berhasil, atau gagal. Setelah itu hasilnya ditampilkan di console, jalankan reporter tersebut

$(npm bin)/cypress run --reporter cypress/reporter/status-reporter.js

Setelah report tersebut selesai dibuat dan ditest, kita ingin menambahkan fitur untuk menulis report tersebut ke file pass.txt dan failed.txt. Untuk dapat mengakses file kita akan menggunakan module fs, yang merupakan bawaan nodejs.

Ubah code diatas menjadi

'use strict';
 
const Mocha = require('mocha');
const fs = require('fs');
const testPass = '/tmp/pass.txt'
const testFailed = '/tmp/failed.txt'
 
const {
  EVENT_TEST_FAIL,
  EVENT_TEST_PASS,
} = Mocha.Runner.constants;
 
class StatusReporter {
  constructor(runner) {
 
    runner
      .on(EVENT_TEST_PASS, test => {
        const data = `${test.fullTitle()}, ${test.duration}, PASS`
        console.log(data);
        fs.appendFileSync(testPass, data);
      })
      .on(EVENT_TEST_FAIL, (test, err) => {
        const data = `${test.fullTitle()}, ${test.duration}, FAILED`
        console.log(data);
        fs.appendFileSync(testFailed, data);
      })
  }
 
}
 
module.exports = StatusReporter;

dari ke 5 baris yang kita tambahkan tersebut, fs.appendFileSync adalah yang bertugas untuk menuliskan hasil test ke file. Cek isi file failed.txt dan pass.txt
file okay

Sampai sekian pembahasan cypress kita, dilain kesempatan akan kita bahas lagi mengenai Cypress.

Tulisan menarik lainnya

  • Membuat Kalender dengan PHP

    Buat sebuah file dengan nama kalender.php lalu tambahkan script dibawah ini Minggu Senin Selasa Rabu…

  • Membuat Pencarian dengan CodeIgniter 3

    Script searching/pencarian ini adalah porting dari script Pencarian Laravel 5, jadi databasenya diambil dari sana…

  • Membuat Pencarian dengan Laravel 5

    Database yang akan kita gunakan adalah dborang dari tutorial Membuat Pagination di Laravel 5. Membuat…

  • Membuat Password Generator dengan PHP

    Untuk membuat kombinasi password yang aman disarankan menggunakan huruf kecil, huruf besar, angka, dan karakter…

Filed Under: Linux

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

Pencarian

Tanya Jawab tentang DevOps SRE CPE, gabung di https://t.me/devopsindonesia

Terbaru

  • Cara Menonaktifkan Pager di macOS
  • Cara Mengupdate Nama Apple silicon-as-a-Service Scaleway
  • Cara Force Delete Namespace di Kubernetes
  • Install PHP MariaDB di Mac Monterey
  • MacOS Minta Install Git

Komentar

  • Ari on Cara Mematikan SSID Molecool Balifiber
  • kiki anarki on Mengambil Data dari Situs BPJS Ketenagakerjaan dengan PHP cURL
  • musgan on Password Router Huawei HG8245H5 Indihome
  • ghabily on Mengambil Informasi Router Alcatel Lucent G-241W-A dengan PHP
  • nea on Mencari urutan angka yang hilang di PHP

Tulisan Populer

  • Password Router Huawei HG8245H5 Indihome 1.1m views
  • Password Terbaru ZTE F609 Indihome 784k views
  • Password Superadmin Huawei HG8245A 314.2k views
  • Cara Setting Manual Modem GPON ZTE F609 Indihome 272.2k views
  • Cara Setting Wireless ZTE F609 Indihome 256.1k views
  • Mengaktifkan Port LAN di Huawei HG8245 Indihome 169.1k views
  • Akses UseeTV Indihome via Wireless ZTE F609 156.5k views
  • Kemana Menghilangnya Saldo BCA 50 ribu 150.3k views
  • Cara Reset Password ZTE F609 Indihome 147.2k views
  • Cara Setting DHCP Server Modem/Router ZTE F609 112.9k views

Kategori

  • Delphi
  • dll
  • Gambas
  • Internet
  • Java
  • Lazarus
  • Linux
  • PHP
  • Review
  • Teknologi

Sponsor

kadal.id
carakami.com
kuotabisa.com
Untuk jadi sponsor, hubungi kita lewat halaman sponsor
© 2021. Jaranguda
  • Linux
  • PHP
  • Internet
  • Teknologi
  • Delphi
  • Gambas
  • Java