在这个ExUnit测试运行程序中,为什么在这里调用ExUnit.Server.modules_loaded()?

时间:2018-12-29 20:08:22

标签: elixir ex-unit

因此,当使用陈旧选项运行ExUnit时,为什么调用此行ExUnit.Server.modules_loaded()

我认为需要这行Kernel.ParallelCompiler.require(test_files, parallel_require_callbacks)来要求ex_unit测试文件能够并行运行。

我可以在ExUnit.Server.modules_loaded()模块中跟踪ExUnit.Server的源代码跟踪,但是对于take_modules函数调用在做什么的高级目的,我还不清楚以及为什么它在做什么?似乎只是在更新GenServer状态并进行某种回复...的目的仅仅是确保模块已加载并存储该“加载”状态,以便程序员可以“窥视”该状态。状态?

1 个答案:

答案 0 :(得分:0)

诚然,您所要问的还不清楚。对于您要调用的特定行,该行就是将测试用例加载到ExUnit的过程。符合您较早的理解,将加载测试文件,然后通过您调用ExUnit.Server.modules_loaded()的命令将测试用例本身放入。然后运行测试。链接文件%{failures: failures} = results = Task.await(task, :infinity)的第45行正在执行第36行task = Task.async(ExUnit, :run, [])

上定义的任务