Saya sedang menulis permata rubi menggunakan Commander yang menggunakan templat erb dan $terminal.color
untuk beberapa keluaran. Saat menulis pengujian di RSpec (menggunakan Tes CLI) saya ingin dapat memberikan opsi ke perintah saya untuk mencegah pewarnaan sehingga pengujian saya dapat mencocokkan string sederhana daripada harus menyertakan pemformatan dalam perbandingan string saya.
Saat ini saya menggunakan:
execute_script('mycommand arg1')
expect(last_execution.stdout).to include("Expected Colorized Output")
Tapi misalkan kata "Berwarna" dicetak tebal, tes ini akan gagal karena dikelilingi oleh karakter lain jadi saya harus menulis tes saya seperti ini
execute_script('mycommand arg1')
expect(last_execution.stdout).to include("Expected")
expect(last_execution.stdout).to include("Colorized")
expect(last_execution.stdout).to include("Output")
Saya ingin menghindari penghentian pengujian dengan cara ini -- adakah cara agar saya dapat meneruskan opsi dalam panggilan execute_script
dalam pengujian saya, atau mengonfigurasi RSpec untuk menghapus pemformatan pengujian?
Contoh string yang dilihat RSpec
# successfully is bolded here
Command ran \e[1m\e[32msuccessfully\e[0m
Yang mana saya ingin bisa melawannya
expect(last_execution.stdout).to include("Command ran successfully")
include("Expected Colorized Output")
dengan pewarnaan, sepertiinclude(bold(red("Expected Colorized Output")))
--- secara harfiah membuat sintaksis ini, tetapi sesuatu seperti itu mungkin akan berhasil? - person jefflunt   schedule 04.08.2016last_execution.stdout
ke konsol sehingga Anda (dan kami) dapat melihat apa yang dilihat rspec? - person jefflunt   schedule 04.08.2016successfully
, karena itu menunjukkan status, dan merupakan string yang tidak terputus dalam pewarnaan. - person jefflunt   schedule 04.08.2016