为测试和开发设置环境变量

我考虑为我的插件添加 dotenv gem(https://github.com/bkeepers/dotenv),用于测试和开发目的。这样可以方便地按环境设置环境变量。

我在想是否遗漏了什么,是否有更好的方法来实现这一点?

您正在尝试加载什么?您可以为所有 SiteSettings 设置

DISCOURSE_SETTING_NAME=value

这会有帮助吗?

很遗憾不行。我正在开发一个私有插件,需要设置一个环境变量来存储敏感数据,以免将其提交到版本控制系统中。

在生产服务器上设置该环境变量没问题,但我希望在运行测试时也能将其加载到测试环境中。我可以在代码中内联指定,但理想情况下,我希望有一个更具可扩展性的解决方案。

我发帖的原因是,添加那个 gem 让我感觉不太对劲。我原本以为 Discourse 应该已经有了解决这个问题的方案。

那么,我认为你可以设置类似下面的环境变量:

 DISCOURSE_MY_PLUGIN_SETTING

对于测试,我认为你可能需要在 spec 中设置 GlobalSetting.my_plugin_setting,但这主要是一个猜测。

好的,我会查看 GlobalSetting

您可以在插件中设置 ENV['yourkey'] = 'yourval',这样是可行的。我今天刚用它来测试代码。

此外,您还可以安装特定于模式的 gems。我本人尚未尝试过,但这里有一个示例:discourse-assign/Gemfile at main · discourse/discourse-assign · GitHub