问题标签 [elixir-mix]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - 在 Elixir 中运行混合测试时抑制标准错误
我正在我的应用程序中处理几个外部进程。在测试期间,其中几个的 stderr 输出与我的测试消息和结果内联输出。我可以做这个:
然而,当我这样做时,我失去了所有可爱的色彩。还有一些 Elixir 错误仍然出现,尽管不是全部(这对我来说很好)。
有没有更好的方法来抑制外部程序的错误而不影响混音输出?这甚至是个好主意吗?
或者我的测试不应该与真正的命令行实用程序交互吗?我问是因为那时我真的不再清楚我在测试什么。
更新:
下面是一个简化的函数和测试,以更好地说明这个概念。
功能:
考试:
该测试完美通过。然而,它也输出与测试消息一致iptables: No chain/target/match by that name.
。消息的确切位置也是不可预测的,并且这些消息大量使测试信息难以阅读。然后我重定向stderr,由于某种原因我失去了颜色编码,这也使得很难跟踪测试结果。
elixir - 仅当 MIX_ENV 最初未设置为“测试”时才加载标记为测试的混合依赖项
我希望mix test
在我的 Elixir 应用程序中以编程方式运行该任务。这可以通过 来完成Mix.Tasks.Test.run/1
,尽管在不首先设置环境变量的情况下尝试这样做会MIX_ENV
导致任务拒绝运行。
我们可以用 设置System.put_env/2
环境,但是一旦应用程序找到对在标记为仅测试的依赖项中定义的模块的引用,应用程序就会崩溃。
在这种情况下如何加载这些依赖项?
elixir - 我应该在我的长生不老药代码中使用 Mix.Utils 吗?
我需要通过 URL 获取文件并将其存储在本地磁盘上。
我看到 Mix.Utils 有:
这似乎完全符合我的要求,但 Mix.Utils 只是用于编写混合任务而不是用于解决一般问题的东西吗?
testing - 当行为取决于 Application.get_env/3 时,如何测试模块?
我正在制作一个带有模块的库,当use
'd 注入一些依赖于目录内容的函数时,我想测试不同目录的行为。目前我通过应用程序配置获取目录的路径Application.get_env/3
。
如果我要更改目录Application.put_env/4
,这意味着我的测试必须按顺序运行,因为这是一个有效的全局值,对吗?
我可以挂断电话Application.get_env/3
吗?还是我应该以另一种方式传递价值?(例如通过use
宏)
elixir - 在 Elixir 单元测试中导入测试代码
我正在编写一些与 SSH 交互的 Elixir 代码的测试。在我的测试中,我想启动一个可以运行我的代码的 SSH 服务器。我更愿意将此代码存储在测试目录中它自己的文件中,并通过各种不同的测试将其导入。
不过,我无法让它工作得很好。
我尝试创建一个test/ssh_server.ex
包含SSHServer
模块的文件,但是当我添加import SSHServer
到我的测试中时,我得到:
(CompileError) test/end_to_end_test.exs:13: 模块 SSHServer 未加载且找不到
我错过了什么吗?有没有办法强制mix test
导入我的 test/ssh_server.ex 文件?
shell - IO.gets 的期望功能?
例如,如果我想自动授权十六进制用户。就像是
mix hex.user auth 要求用户名:和密码:但我不认为期望适用于此
elixir - Phoenix 服务器上的 MIX_ENV=prod 在以 PORT=80 开始时崩溃
我在 mix 和MIX_ENV=prod
上遇到了一些问题mix phoenix.server
,它在启动时失败了。在 Linode 的 Ubuntu 14.04 上运行除 Erlang(17.x,我认为是 17.3)之外的所有最新版本(Elixir 1.0.5,Phoenix 0.14.0)。
具体来说,我认为这是痕迹的这一部分。
elixir - Elixir:如何正确描述 mix.exs 设置?
我尝试使用 HTTPoison 编写一个网络抓取工具。作为第一步,我按照如下所示的步骤编写了一个简短的 HTTP 访问代码;
通过混合创建项目
$ 混合新的 httptest1
在 lib/httptest1.ex 上写一个简短的代码。
/li>为 HTTPoison 修改 mix.exs。
/li>运行
$ mix deps.get
依赖。运行
/li>$ mix run
,则编译失败;
当我$ iex -S mix
改为使用时,结果是一样的。
但是,如果我将 httptest1.ex 移动到放置 mix.exs 的同一目录,例如$ mv lib/httptest1.ex .
并尝试明确指定源文件;$ mix run httptest1
,它工作正常。
问: 我怀疑我的 mix.exs 设置出了问题,那是什么?
elixir - 用于生产和开发的不同供应商文件
我正在使用 Phoenix 0.14.0,我打算使用 reactjs 来创建用户界面。
我这样做的方式只是将 react.min.js 放在web/static/vendor
文件夹中。问题是,我希望在开发中使用非缩小版本的 react,因为它具有调试代码。
当我使用react.min.js
缩小后的 app.js 的最终大小为 ~150K 时,如果我使用react.js
最终大小为 550K,我认为这差别不大。
有没有办法可以在凤凰城中使用不同的静态文件进行生产和开发?
elixir - 有没有办法搜索依赖于某个包的所有十六进制包?
我想搜索所有依赖于 comeonin 的十六进制包,这可能吗?