3
我希望以编程方式在我的Elixir应用程序中运行mix test
任务。这可以通过Mix.Tasks.Test.run/1
来完成,尽管在未首先设置MIX_ENV
环境变量的情况下尝试这样做会导致任务拒绝运行。仅当MIX_ENV最初未设置为“测试”时才加载标记为测试的混合相关性
我们可以使用System.put_env/2
来设置env,但是一旦找到对被标记为仅测试的依赖项中定义的模块的引用,应用程序就会崩溃。
如何在这种情况下加载这些依赖关系?
一旦env被更改,是不可能重新加载deps的? – lpil
你绝对可以。但是那些已经加载的代码呢?可能已启动的应用程序?我更喜欢我的环境是“干净的”,而不是混合使用开发和测试代码。一些框架可以完成你所提到的内容,但这只会导致长期的痛苦。 –
非常好的一点。非常感谢你。 :) – lpil