للسيّدات، خلال الأيام القليلة الماضية، عندما أحاول تشغيل الاختبارات محليًا، أواجه هذه الرسالة:
$ bundle exec rake autospec
...
حدث خطأ أثناء تحميل ./spec/components/discourse_redis_spec.rb.
Failure/Error:
describe DiscourseRedis::Connector do
let(:connector) { DiscourseRedis::Connector.new(config) }
after do
fallback_handler.master = true
end
it 'should return the master config when master is up' do
expect(connector.resolve).to eq(config)
end
NameError:
uninitialized constant DiscourseRedis::Connector
Did you mean? ConnectionPool
لا أدرك ما الذي قد يكون تغير دون قصد في نظامي مما جعله غير قادر على تشغيل الاختبارات. Redis يعمل بالتأكيد، لذا لا يمكن أن يكون السبب ناتجًا عن عدم تشغيل Redis.
أواجه هذه المشكلة حتى عند تشغيل الاختبارات على نسخة نظيفة من tests-passed، مما يشير إلى أن المشكلة تتعلق ببيئتي، لكنني لا أعرف من أين أبدأ البحث.
عذرًا، خطئي. لقد نسيت الدفع قمت بتحديث المنشور السابق بالالتزام الصحيح.
ونعم، هذا يعني أن الاختبارات المعطلة دخلت في اختبارات النجاح. لحسن الحظ، فإن Discourse نفسه سليم - المشكلة في الاختبارات التي تحتاج إلى تحديث وليست في أي أخطاء في تطبيقنا. ومع ذلك، سنمنع حدوث ذلك في المستقبل.
لقد جربنا ذلك بالفعل! الآن تعمل الاختبارات بسعادة.
أعتذر لأنني لم أسأل في وقت سابق. أعرف أنني خارج التيار الرئيسي لمطوري Discourse لأنني أعمل على Fedora وليس Ubuntu، لذا لدي تحيز لأفترض وجود اختلاف بيئي في جهازك يختلف فقط. شكراً لك على فتح باب الاختبار لي!
أرى وجود خلاف حول تعطيل تلك الاختبارات من الإلتزام 25db91e35180b2707ca4a9f7ffd173823f86f18d الذي يعيدك إلى الوراء.
لكن السبب ليس لأنه يتبعه إصلاح للمشكلة، لأنني جربت في d775338d637d9ef3843acf227a138e8f11352151 وهو الفرع الرئيسي (master) وقد نجحت الاختبارات في اللحظة التي سحبت فيها الكود، لكن المشكلة عادت.
على الأقل نجحت في جعل اختباراتي تعمل محليًا، ووضعت يدي على ما يجب أن أفعله بشكل مختلف للتعامل مع آليات الأمان الجديدة التي أضفتها إلى سكريبت الترحيل.
@tgxworld ما هو الخطة لحل هذا التعارض؟ أعتقد أنني يمكنني ببساطة اختيار b1114b9a20343525c805d7339bd64954965a12f9 مؤقتًا على أساس فرعتي عندما أحتاج إلى الاختبار في هذه الأثناء؟
كان من المفترض إزالة الاختبارات، ولم أنتبه لذلك لأن نظام التكامل المستمر (CI) لدينا كان يعاني من خلل لم يكن يؤدي إلى الفشل عند مواجهة خطأ. وقد تم إصلاح هذه المشكلة في