Я использую Emacs и пытаюсь максимально ускорить процесс модульного тестирования.Я настроил его так, что он работает, но мне нужно вручную скомпилировать тестируемый модуль или модуль, содержащий тесты, прежде чем оболочка Erlang распознает мои изменения.
У меня есть два файла mymodule.erl
и mymodule_tests.erl
.Я хотел бы иметь возможность:
- Добавить тестовый пример к mymodule_tests
- Сохранить mymodule_tests
- Переключиться на оболочку Erlang
- Запускайте тесты в одну строку, например
eunit:test(mymodule)
или mymodule_tests:test()
- Перед тем, как приступить к тестированию, Erlang перезагрузит mymodule и mymodule_tests
Я пытался написать собственный метод тестирования, ноне работает.
-module (mytests).
-export([test/0]).
-import(mymodule).
-import(mymodule_tests).
-import(code).
test() ->
code:purge(mymodule),
code:delete(mymodule),
code:load_file(mymodule),
code:purge(mymodule_tests),
code:delete(mymodule_tests),
code:load_file(mymodule_tests),
mymodule_tests:test().
Я также попытался, поместив -compile(mymodule).
в mymodule_tests, чтобы посмотреть, смогу ли я получить мой модуль для автоматической перезагрузки при обновлении mymodule_tests, но безрезультатно.
Я также немного погуглил, но не могу найти нужную информацию.Поскольку я новичок в Erlang, я думаю, что я либо ищу неправильные термины, например, erlang reload module
, либо вы не сможете перезагрузить другие модули при компиляции другого модуля.