إعداد متغيرات البيئة للاختبار والتطوير

أفكر في إضافة مكتبة dotenv (GitHub - bkeepers/dotenv: A Ruby gem to load environment variables from `.env`. · GitHub) إلى ملحقي لأغراض الاختبار والتطوير. الهدف من ذلك هو تمكيني من تعيين متغيرات البيئة بسهولة لكل بيئة.

أتساءل عما إذا كنت قد أغفلت شيئًا ما وهل توجد طريقة أفضل لتحقيق ذلك؟

ما الذي تحاول تحميله؟ يمكنك تعيين

DISCOURSE_SETTING_NAME=value

لجميع إعدادات الموقع.

هل سيساعدك ذلك؟

للأسف لا. أنا أعمل على إضافة خاصة وأحتاج إلى تعيين متغير بيئة للبيانات الحساسة حتى لا أقوم بإدراجها في نظام التحكم بالمصدر.

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

السبب في أنني نشرت هو أن إضافة هذه المكتبة تبدو خاطئة؛ كنت أتوقع أن يكون لدى Discourse بالفعل حل لهذه المشكلة.

أعتقد أنه يمكنك بعد ذلك تعيين متغيرات البيئة مثل

 DISCOURSE_MY_PLUGIN_SETTING

بالنسبة للاختبارات، أعتقد أنك قد تقوم بتعيين GlobalSetting.my_plugin_setting في ملف الاختبار (spec)، لكن هذا مجرد تخمين إلى حد كبير.

شكرًا لك، سألقي نظرة على GlobalSetting

يمكنك تعيين ENV['yourkey'] = 'yourval' في الإضافة الخاصة بك، وسيعمل ذلك. لقد استخدمتُ هذه الطريقة اليوم فقط لاختبار كودي.

كما يمكنك تثبيت مكتبات (gems) خاصة بوضعيات معينة. لم أجربها بنفسي بعد، لكن إليك مثالًا: discourse-assign/Gemfile at main · discourse/discourse-assign · GitHub