В этом модуле тестирования ExUnit, почему здесь вызывается ExUnit.Server.modules_loaded ()? - PullRequest
0 голосов
/ 29 декабря 2018

Итак, при запуске 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 голосов
/ 30 декабря 2018

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

...