Goal
ElixirのMixの基本を習得する。
Dev-Environment
OS: Windows8.1
Erlang: Eshell V6.4, OTP-Version 17.5
Elixir: v1.0.4
Erlang: Eshell V6.4, OTP-Version 17.5
Elixir: v1.0.4
Wait a minute
elixir-lang - Introduction to Mixの簡単なまとめ。
今更だが、Elixirのビルド管理ツールであるmixについてまとめた。
今更だが、Elixirのビルド管理ツールであるmixについてまとめた。
Index
BasicMix
|> Create Project
|> Compile Project
|> Use ExUnit
|> Mix.env
|> Help
|> Extra
|> Create Project
|> Compile Project
|> Use ExUnit
|> Mix.env
|> Help
|> Extra
Create Project
プロジェクトの生成。
以下のコマンドで生成できる。
kv: プロジェクト名
KV: モジュール名
kv: プロジェクト名
KV: モジュール名
>mix new kv --module KV
* creating README.md
* creating .gitignore
* creating mix.exs
* creating config
* creating config/config.exs
* creating lib
* creating lib/kv.ex
* creating test
* creating test/test_helper.exs
* creating test/kv_test.exs
Your mix project was created successfully.
You can use mix to compile it, test it, and more:
cd kv
mix test
Run `mix help` for more commands.
—moduleを省略しても良い。
生成されるモジュールの名前を指定できる。
(但し、生成されるファイルはプロジェクト名が使われている)
生成されるモジュールの名前を指定できる。
(但し、生成されるファイルはプロジェクト名が使われている)
>mix new kv
Compile Project
プロジェクトをコンパイルする。
以下のコマンドでコンパイルできる。
>mix compile
Compiled lib/kv.ex
Generated kv app
Use ExUnit
テストユニットを使ってみる。
ファイル: test/[module_name]_test.exs
ファイル: test/[module_name]_test.exs
テストの実行コマンド。
>mix test
.
Finished in 0.04 seconds (0.04s on load, 0.00s on tests)
1 tests, 0 failures
Randomized with seed 453000
テスト失敗時の出力。
>mix test
1) test the truth (KVTest)
test/kv_test.exs:4
Assertion with == failed
code: 1 + 1 == 3
lhs: 2
rhs: 3
stacktrace:
test/kv_test.exs:5
Finished in 0.05 seconds (0.04s on load, 0.01s on tests)
1 tests, 1 failures
Randomized with seed 308000
test the truth (KVTest) ・・・ テスト名
test/kv_test.exs:4 ・・・ 実行したテスト
code: 1 + 1 == 3 ・・・ 失敗したテスト内容
lhs: 2 ・・・ 左側の値
rhs: 3 ・・・ 右側の値
stacktrace: test/kv_test.exs:5 ・・・ 失敗した行
test/kv_test.exs:4 ・・・ 実行したテスト
code: 1 + 1 == 3 ・・・ 失敗したテスト内容
lhs: 2 ・・・ 左側の値
rhs: 3 ・・・ 右側の値
stacktrace: test/kv_test.exs:5 ・・・ 失敗した行
Mix.env
mixには、環境と言う概念がある。
- :dev ・・・ デフォルトの環境
- :test ・・・ テストで使われる環境
- :prod ・・・ プロダクションの環境
詳しくはドキュメントのhexdocs - v1.0.5 Mixを参照すること。
Windoswで設定したければ以下のようにする。
>set MIX_ENV=test
>echo %MIX_ENV%
test
Help
mixの詳しいコマンドを知りたい場合。
>mix help
絞り込みたい場合。
>mix help | grep キーワード
細かい説明を見たい場合。
>mix help タスク名
例えば、runの細かい説明を見たい場合。
>mix help run
# mix run
Runs the given file or expression in the context of the application.
Before running the code, it invokes the `app.start` task which compiles
and loads your project.
It is the goal of this task to provide a subset of the functionality
existent in the `elixir` executable, including setting up the `System.argv`:
mix run -e Hello.world
mix run my_script.exs arg1 arg2 arg3
Many command line options need to be passed to the `elixir` executable
directly, which can be done as follows:
elixir --sname hello -S mix run -e "My.code"
## Command line options
* `--config`, `-c` - loads the given configuration file
* `--eval`, `-e` - evaluate the given code
* `--require`, `-r` - require pattern before running the command
* `--parallel-require`, `-pr`
- requires pattern in parallel
* `--no-compile` - do not compile even if files require compilation
* `--no-deps-check` - do not check dependencies
* `--no-halt` - do not halt the system after running the command
* `--no-start` - do not start applications after compilation
Extra
iexについて。
コンパイルしたモジュールやライブラリを利用したい場合。
>iex -S mix
Speaking to oneself
ElixirでErlang/OTPを使うための最初の一歩。
次は、Agentをやりたいかな~
次は、Agentをやりたいかな~