В этом модуле тестирования ExUnit, почему здесь вызывается ExUnit.Server.modules_loaded()?

Итак, при запуске 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 ответ

Правда, немного неясно, что именно вы спрашиваете. Что касается конкретной строки, которую вы вызываете, то эта строка загружает тестовые примеры в ExUnit. Это соответствует вашему раннему пониманию: тестовые файлы загружаются, а сами тестовые примеры извлекаются вызванной вами командой ExUnit.Server.modules_loaded(), Затем тесты запускаются. Строка 45 из связанного файла %{failures: failures} = results = Task.await(task, :infinity) выполняет задачу, определенную в строке 36 task = Task.async(ExUnit, :run, [])

Другие вопросы по тегам