obmarg / ex_unit_fixtures

A library for defining modular dependencies (fixtures) for ExUnit tests.
MIT License
13 stars 5 forks source link

Using `on_exit` from a FixtureModule fails. #17

Closed obmarg closed 8 years ago

obmarg commented 8 years ago

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.