代码之家  ›  专栏  ›  技术社区  ›  Nona

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

  •  0
  • Nona  · 技术社区  · 7 年前

    所以当你用过时的选项运行ExUnit时,为什么会出现这种情况 ExUnit.Server.modules_loaded() 打电话?

    Kernel.ParallelCompiler.require(test_files, parallel_require_callbacks) 需要要求ex_单元测试文件能够并行运行。

    我可以跟踪 ExUnit.Server.modules_loaded() ExUnit.Server 模块,但我有点不清楚 take_modules 函数调用在做什么,为什么要做它所做的事情?它似乎只是在更新 GenServer 状态和做某种回复…目的仅仅是为了确保模块被加载并存储“加载”的状态以便程序员可以“窥视”该状态吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   JustAnotherSoul    7 年前

    不可否认,你的要求有点不明确。至于您调用的特定行,这一行就是加载测试用例的内容。这符合您先前的理解,测试文件被加载,然后测试用例本身被您调用的命令拉入 ExUnit.Server.modules_loaded() %{failures: failures} = results = Task.await(task, :infinity) 正在执行第36行定义的任务 task = Task.async(ExUnit, :run, [])