我想在我的 Elixir 项目中拥有两组独立的单元测试,我可以使用不同的 ExUnit 配置单独运行它们。我正在开发 ExUnit 格式化程序,并尝试为其编写单元测试。为了测试它,我想我会创建另一个目录 ( example_tests),其中包含test_helper.exs一个与 中的文件类似的文件test/,但 ExUnit 配置为使用我的自定义格式化程序。我将格式化程序添加为 ExUnit 格式化程序,然后创建了一个测试模块example_tests。现在的问题是我不知道如何配置 ExUnit 以example_tests/使用 中指定的配置运行所有测试example_tests/test_helper.exs。
我发现有一个test_paths配置参数无法在文件中设置mix.exs。问题是该值是在每个项目的基础上设置的,我需要它有两个不同的值(通常只是["test"]但随后用于使用格式化程序进行测试运行["example_tests"])。我假设我可以在每个任务的基础上覆盖配置值,因此我也创建了一个 example_tests 任务,但我不知道如何更改配置。
有没有办法Mix.Project.config在每个任务的基础上自定义项目配置()?或者,是否有更好的方法来创建具有不同 ExUnit 配置的两组独立的测试?
更新:
以下是 Mix 任务源代码的链接test:https://github.com/elixir-lang/elixir/blob/master/lib/mix/lib/mix/tasks/test.ex
我正在尝试找到一个列表,将混合格式的可配置选项放入格式化程序配置文件中,但我终生找不到它。它不是混合格式的文档或我看过的其他任何地方。有谁知道我在哪里可以找到这些信息?
我的 Elixir 应用程序中有一些文件,我想从测试覆盖率报告中排除它们。我现在没有使用任何花哨的覆盖工具;(尽管我并不排除使用此类工具的可能性)我mix test --cover现在只是在使用。
如何告诉覆盖率分析工具给定的文件不应包含在覆盖率分析中?
我定义了一个与guide-started相关的环境变量,我的mix.exs是
defmodule Basic.Mixfile do
use Mix.Project
def project do
[app: :basic,
version: "0.0.1",
elixir: "~> 0.13.0-dev",
deps: deps,
env: [
dev: [foo: "bar"] ] ]
end
# Configuration for the OTP application
#
# Type `mix help compile.app` for more information
def application do
[ applications: [],
mod: { Basic, [] } ]
end
# List all dependencies in the format:
#
# { :foobar, git: "https://github.com/elixir-lang/foobar.git", tag: "0.1" }
#
# Type `mix help deps` …Run Code Online (Sandbox Code Playgroud) 至少在两周之前我一直在使用混合代理.但是我发现昨天混合变得无法在代理背后工作.mix版本是1.1.1.混合local.hex运行.但是混合deps.get会发生错误.
$ mix deps.get
Registry update failed (http_error)
{:failed_connect, [{:to_address, {'s3.amazonaws.com', 443}}, {:inet, [:inet], :nxdomain}]}
Running dependency resolution
Dependency resolution completed successfully
combine: v0.5.3
floki: v0.6.1
hackney: v1.3.2
httpoison: v0.7.4
idna: v1.0.2
mochiweb: v2.12.2
ssl_verify_hostname: v1.0.5
timex: v0.19.5
tzdata: v0.5.4
* Getting httpoison (Hex package)
Checking package (https://s3.amazonaws.com/s3.hex.pm/tarballs/httpoison-0.7.4.tar)
Request failed: {:failed_connect, [{:to_address, {'s3.amazonaws.com', 443}}, {:inet, [:inet], :nxdomain}]}
** (Mix) Package fetch failed and no cached copy available
Run Code Online (Sandbox Code Playgroud)
代理由HTTP_PROXY和HTTPS_PROXY设置.我还将.gitconfig设置为;
[http]
proxy = http://proxy.mycompany.co.jp:10080
[https]
proxy = http://proxy.mycompany.co.jp:10080
[url "https://"] …Run Code Online (Sandbox Code Playgroud) 我有一个Elixir伞形项目.该项目中的每个应用程序都可以使用编译成可执行文件mix escript.build.
我试图从伞项目的根目录运行此命令,并得到以下错误
** (RuntimeError) Trying to access Mix.Project.app_path for an umbrella project but umbrellas have no app
Run Code Online (Sandbox Code Playgroud)
我理解为什么这不起作用.因此,尝试在伞形项目的根目录下创建自定义组合任务.由于根没有lib目录,我添加了一个并在其中创建了一个混合任务.但是没有列出mix help.
如何在伞形项目的根目录中定义自定义混合任务?
我尝试在没有Bootstrap的情况下启动Laravel 5.4项目.
安装Laravel后,我编辑了以下文件:
资源/资产/ JS/app.js
require('./bootstrap');
Run Code Online (Sandbox Code Playgroud)
的package.json
...
"devDependencies": {
"axios": "^0.15.3",
"bootstrap-sass": "^3.3.7",
"jquery": "^3.1.1",
"laravel-mix": "^0.7.2",
"lodash": "^4.17.4",
"vue": "^2.1.10"
},
...
Run Code Online (Sandbox Code Playgroud)
我有以下错误:
错误./resources/assets/js/app.js中编译失败,错误1错误
语法错误:/Users /.../package.json:解析JSON时出错 - JSON.parse()中的JSON输入的意外结束@ multi ./resources/assets/js/app.js ./resources/assets/sass/ app.scss
有什么建议?
我正在使用Mix(这也适用于Elixir)我可以管理我的前端资产.我将Mix配置为生产中的版本文件,但不是dev.因此,当我更新的资产,我得到更新app.js,并app.css在开发和文件app.{hash}.js和app.{hash}.css文件制作.
关于如何在版本控制中利用它,您有什么建议?
.gitignore js和css文件并在生产服务器上运行npm以在本地编译资产?你对此有何看法?
提前致谢.
我看过以这种方式命名的elixir模块:
defmodule Foo.bar.baz do
end
Run Code Online (Sandbox Code Playgroud)
但我找不到任何文件说明何时这样做.
它与子目录有关吗?使用mix,我可以将我的模块放在lib文件夹中的子目录中,并且它们在没有点的情况下工作正常.
例如:
# this is in /lib/foo/bar
defmodule Bar do
end
Run Code Online (Sandbox Code Playgroud)
惯例是什么?
我正在尝试获取我的elixir项目的依赖项。我无法确定Hex是否掉线(今天早上我可以很好地获取数据)。当我跑步
$ mix deps.get
Run Code Online (Sandbox Code Playgroud)
我看到了:
Failed to fetch record for 'hexpm/phoenix_live_reload' from registry (using cache)
{:failed_connect, [{:to_address, {'repo.hex.pm', 443}}, {:inet, [:inet], {:option, :server_only, :honor_cipher_order}}]}
Failed to fetch record for 'hexpm/phoenix_ecto' from registry (using cache)
{:failed_connect, [{:to_address, {'repo.hex.pm', 443}}, {:inet, [:inet], {:option, :server_only, :honor_cipher_order}}]}
Failed to fetch record for 'hexpm/phoenix' from registry (using cache)
{:failed_connect, [{:to_address, {'repo.hex.pm', 443}}, {:inet, [:inet], {:option, :server_only, :honor_cipher_order}}]}
Failed to fetch record for 'hexpm/phoenix_pubsub' from registry (using cache)
{:failed_connect, [{:to_address, {'repo.hex.pm', 443}}, {:inet, [:inet], {:option, :server_only, …Run Code Online (Sandbox Code Playgroud)