طلب مساعدة في فشل العثور على DiscourseRedis::Connector أثناء تشغيل الاختبارات

للسيّدات، خلال الأيام القليلة الماضية، عندما أحاول تشغيل الاختبارات محليًا، أواجه هذه الرسالة:

$ 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، مما يشير إلى أن المشكلة تتعلق ببيئتي، لكنني لا أعرف من أين أبدأ البحث.

هل لديكم أي اقتراحات؟

يبدو أننا تمكنا من التحقق من مواصفات معطلة. لقد قمت بتعطيل المواصفات المعطلة في هذا الالتزام:

لكن لدينا عنصران للمتابعة:

  1. إصلاح المواصفات المعطلة
  2. التأكد من عدم القدرة على التحقق منها مرة أخرى في المستقبل.

شكرًا لك على النظر في هذا! هل وصلت المواصفات المعطلة إلى tests-passed بسبب مشاكل متقطعة؟

لقد قمت بسحب التحديث، وعلى ac9577bcc7b69593bcdd204368d35492fc0cee15 ما زلت أرى نفس الخطأ بالضبط محليًا. لذا من المحتمل أن يكون هناك أكثر من مشكلة. :confused:

عذرًا، خطئي. لقد نسيت الدفع :facepalm: قمت بتحديث المنشور السابق بالالتزام الصحيح.

ونعم، هذا يعني أن الاختبارات المعطلة دخلت في اختبارات النجاح. لحسن الحظ، فإن Discourse نفسه سليم - المشكلة في الاختبارات التي تحتاج إلى تحديث وليست في أي أخطاء في تطبيقنا. ومع ذلك، سنمنع حدوث ذلك في المستقبل.

لقد جربنا ذلك بالفعل! الآن تعمل الاختبارات بسعادة.

أعتذر لأنني لم أسأل في وقت سابق. أعرف أنني خارج التيار الرئيسي لمطوري Discourse لأنني أعمل على Fedora وليس Ubuntu، لذا لدي تحيز لأفترض وجود اختلاف بيئي في جهازك يختلف فقط. شكراً لك على فتح باب الاختبار لي!

أرى وجود خلاف حول تعطيل تلك الاختبارات من الإلتزام 25db91e35180b2707ca4a9f7ffd173823f86f18d الذي يعيدك إلى الوراء.

لكن السبب ليس لأنه يتبعه إصلاح للمشكلة، لأنني جربت في d775338d637d9ef3843acf227a138e8f11352151 وهو الفرع الرئيسي (master) وقد نجحت الاختبارات في اللحظة التي سحبت فيها الكود، لكن المشكلة عادت.

على الأقل نجحت في جعل اختباراتي تعمل محليًا، ووضعت يدي على ما يجب أن أفعله بشكل مختلف للتعامل مع آليات الأمان الجديدة التي أضفتها إلى سكريبت الترحيل.

@tgxworld ما هو الخطة لحل هذا التعارض؟ أعتقد أنني يمكنني ببساطة اختيار b1114b9a20343525c805d7339bd64954965a12f9 مؤقتًا على أساس فرعتي عندما أحتاج إلى الاختبار في هذه الأثناء؟

كان من المفترض إزالة الاختبارات، ولم أنتبه لذلك لأن نظام التكامل المستمر (CI) لدينا كان يعاني من خلل لم يكن يؤدي إلى الفشل عند مواجهة خطأ. وقد تم إصلاح هذه المشكلة في