Rspec-core: كيف يمكنك إجبار اللون بدون tty؟

تم إنشاؤها على ٢٥ أغسطس ٢٠١٢  ·  3تعليقات  ·  مصدر: rspec/rspec-core

أقوم بتشغيل 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.

فكيف يمكنني (مع الكود) فرض تكوين اللون على صحيح؟

التعليق الأكثر فائدة

اكتشفت أن --color --tty جعل هذا العمل بالنسبة لي. تعمل اختباراتي في نظام تكامل مستمر بدون رأس لا يكتب إلى TTY ، لكن نظام CI يمكنه التقاط المخرجات الملونة وتقديمها بشكل مناسب في متصفح الويب ، لذلك أردنا استخدام اللون إن أمكن.

ال 3 كومينتر

RSpec.configure do |c|
  def c.color; true; end
end

من المسلم به أنه اختراق ، لكن هذا جيد لأنك تستخدم RSpec بطريقة لم يتم تصميمها من أجلها بالفعل.

هذا يعمل بشكل رائع - شكرًا لك على دعمي في هذا.

اكتشفت أن --color --tty جعل هذا العمل بالنسبة لي. تعمل اختباراتي في نظام تكامل مستمر بدون رأس لا يكتب إلى TTY ، لكن نظام CI يمكنه التقاط المخرجات الملونة وتقديمها بشكل مناسب في متصفح الويب ، لذلك أردنا استخدام اللون إن أمكن.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات