Saya menjalankan rspec secara manual (tanpa perintah rspec
), dan saya ingin mengatur konfigurasi warna menjadi true.
Saya sudah mencoba:
RSpec.configure do |c|
c.tty = true
c.color = true
end
p RSpec.configuration.tty? # => true
p RSpec.configuration.color? # => false
Dan seperti yang Anda lihat, itu tidak berhasil.
Melihat metode output_to_tty?
:
def output_to_tty?
begin
output_stream.tty? || tty?
rescue NoMethodError
false
end
end
Saya menduga itu melempar NoMethodError
pada output_stream.tty? dan mengembalikan false - oleh karena itu, warna tidak dapat diaktifkan, karena opsi warna bergantung pada metode ini yang mengembalikan nilai true.
Jadi bagaimana saya (dengan kode), memaksa konfigurasi warna menjadi true?
RSpec.configure do |c|
def c.color; true; end
end
Memang retas, tapi tidak apa-apa karena Anda menggunakan RSpec dengan cara yang sebenarnya tidak dirancang.
Ini berfungsi dengan baik - terima kasih telah mendukung saya dengan ini.
Saya menemukan bahwa --color --tty
membuat ini bekerja untuk saya. Pengujian saya berjalan dalam sistem integrasi berkelanjutan tanpa kepala yang tidak menulis ke TTY, tetapi sistem CI dapat menangkap output berwarna dan merendernya dengan tepat di browser web, jadi kami ingin menggunakan warna jika memungkinkan.
Komentar yang paling membantu
Saya menemukan bahwa
--color --tty
membuat ini bekerja untuk saya. Pengujian saya berjalan dalam sistem integrasi berkelanjutan tanpa kepala yang tidak menulis ke TTY, tetapi sistem CI dapat menangkap output berwarna dan merendernya dengan tepat di browser web, jadi kami ingin menggunakan warna jika memungkinkan.