mudasobwa
Elixir library to execute `ExUnit` tests as `common_test`
I wanted to release v0.1.0 of this library in 2023, that’s why it’s still very much WIP, although fully functional already.
There was an intent to bring common_test to Elixir by @hauleth, but it seems dead.
I needed to use :peer for some specific tests and I started by adopting it for Elixir users. Soon I figured out, I wanted common_test to be easily usable from Elixir and apparently we have everything already in place to make it as easy as use Enfiladex.
Usage: add :enfiladex dependency and put use Enfiladex.Suite after use ExUnit.Case in your tests to make them run by common_test with newly introduced task MIX_ENV=test iex --sname am -S mix enfiladex.
Limitations:
on_exit/2callbacks with captures makes test to fail compiling withuse Enfiladex(Code.with_diagnostics/2issue),Enfiladex.{peer/3, multi_peer_/3}fail from tests with an anonymous function,MIX_ENV=test iex --sname am -S mix enfiladex(named node) to execute common test,- compiled
beamfiles are not yet removed.
I have no issues fixing all but the first one. It’s induced by Code.with_diagnostics/2 leaving error in the compiler errors accumulator even if handled and processed when executed in compile time.
I need it to detect whether on_exit/2 might be reused as end_per_*** callbacks in common_test. If it grabs context variables, it should be discarded. I am most likely to file an issue in Elixir core, although I understand this use-case is extremely uncommon.
Everything else is kinda working, as well as exported from Enfiladex functions
peer(fun, callback \\ [], config \\ [])multi_peer(fun, callback \\ [], config \\ [])
Both accept a function to be executed on :peer, a callback, and an optional config:
transfer_config::boolean()start_applications::boolean()nodes_count::non_neg_integer()
The docs are pending. Enjoy! enfiladex v0.3.1 — Documentation
P. S. one might test it with running MIX_ENV=test iex --sname am -S mix enfiladex in enfiladex itself after git clone.
First Post!
mudasobwa
Fixed some cosmetics and introduced tasks.
❯ mix enfiladex.ex_unit
...
Finished in 1.1 seconds (0.00s async, 1.1s sync)
3 tests, 0 failures
Randomized with seed 362051
❯ mix enfiladex
Common Test starting (cwd is /home/aleksei/Proyectos/Elixir/enfiladex)
CWD set to: "/home/aleksei/Proyectos/Elixir/enfiladex/ct_logs/ct_run.enfiladex@ALEKSEI-ThinkPad-X1-Carbon-Gen-9.2024-01-02_11.04.47"
TEST INFO: 1 test(s), 3 case(s) in 0 suite(s)
Testing Elixir.enfiladex.Elixir.Enfiladex.Test.Suite: Starting test, 3 test cases
...Testing Elixir.enfiladex.Elixir.Enfiladex.Test.Suite: TEST COMPLETE, 3 ok, 0 failed of 3 test cases
Updating /home/aleksei/Proyectos/Elixir/enfiladex/ct_logs/index.html ... done
Updating /home/aleksei/Proyectos/Elixir/enfiladex/ct_logs/all_runs.html ... done
[{3, 0, {0, 0}}]
... in both cases are passed tests.
Popular in Announcing
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #javascript
- #code-sync
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance








