أقوم بتشغيل rspec يدويًا (بدون الأمر rspec
) ، وأريد ضبط تكوين اللون على true.
لقد حاولت:
RSpec.configure do |c|
c.tty = true
c.color = true
end
p RSpec.configuration.tty? # => true
p RSpec.configuration.color? # => false
وكما ترى فإن هذا لا يعمل.
بالنظر إلى طريقة output_to_tty?
:
def output_to_tty?
begin
output_stream.tty? || tty?
rescue NoMethodError
false
end
end
أظن أنه يرمي NoMethodError
على output_stream.tty؟ وإرجاع القيمة false - لذلك ، لا يمكن تمكين اللون ، لأن خيار اللون يعتمد على هذه الطريقة بإرجاع القيمة true.
فكيف يمكنني (مع الكود) فرض تكوين اللون على صحيح؟
RSpec.configure do |c|
def c.color; true; end
end
من المسلم به أنه اختراق ، لكن هذا جيد لأنك تستخدم RSpec بطريقة لم يتم تصميمها من أجلها بالفعل.
هذا يعمل بشكل رائع - شكرًا لك على دعمي في هذا.
اكتشفت أن --color --tty
جعل هذا العمل بالنسبة لي. تعمل اختباراتي في نظام تكامل مستمر بدون رأس لا يكتب إلى TTY ، لكن نظام CI يمكنه التقاط المخرجات الملونة وتقديمها بشكل مناسب في متصفح الويب ، لذلك أردنا استخدام اللون إن أمكن.
التعليق الأكثر فائدة
اكتشفت أن
--color --tty
جعل هذا العمل بالنسبة لي. تعمل اختباراتي في نظام تكامل مستمر بدون رأس لا يكتب إلى TTY ، لكن نظام CI يمكنه التقاط المخرجات الملونة وتقديمها بشكل مناسب في متصفح الويب ، لذلك أردنا استخدام اللون إن أمكن.