on_exit is not imported inside a FixtureModule, so when you try and use it, the tests crash:
01:49:58.096 [info] Application ex_unit_fixtures exited: ExUnitFixtures.start(:normal, []) returned an error: shutdown: failed to start child: ExUnitFixtures.Imp.FileLoader
** (EXIT) an exception was raised:
** (CompileError) test/fixtures.exs:10: undefined function on_exit/1
(stdlib) lists.erl:1337: :lists.foreach/2
(elixir) src/elixir_module.erl:101: :elixir_module.do_compile/5
(stdlib) erl_eval.erl:669: :erl_eval.do_apply/6
(elixir) src/elixir.erl:215: :elixir.erl_eval/3
(elixir) src/elixir.erl:203: :elixir.eval_forms/4
(elixir) src/elixir_compiler.erl:66: :elixir_compiler.eval_compilation/3
(elixir) src/elixir_lexical.erl:16: :elixir_lexical.run/3
(elixir) src/elixir.erl:215: :elixir.erl_eval/3
** (exit) exited in: GenServer.call(ExUnitFixtures.Imp.ModuleStore, {:get, #Function<1.38512946/1 in ExUnitFixtures.Imp.ModuleStore.find_file/1>}, 5000)
** (EXIT) no process
(elixir) lib/gen_server.ex:564: GenServer.call/3
(elixir) lib/enum.ex:873: anonymous fn/3 in Enum.flat_map/2
(elixir) lib/enum.ex:1473: Enum."-reduce/3-lists^foldl/2-0-"/3
(elixir) lib/enum.ex:872: Enum.flat_map/2
test/sqlitex_test.exs:2: (module)
This is definitely something we want to support, so maybe when you use a fixture module we should import ExUnit.Callbacks, or otherwise document how to make it work.
on_exit
is not imported inside aFixtureModule
, so when you try and use it, the tests crash:This is definitely something we want to support, so maybe when you use a fixture module we should
import ExUnit.Callbacks
, or otherwise document how to make it work.