Emacs를 사용하고 가능한 한 자동화 된 단위 테스트 작업 흐름을 얻으려고합니다. 나는 그것이 작동하도록 설정했지만 Erlang Shell이 나의 변경 사항을 인식하기 전에 테스트를 포함하는 모듈 또는 테스트를 포함하는 모듈을 수동으로 컴파일해야합니다.Erlang으로 단위 테스트를 할 때 모듈 리로딩을 자동화하는 방법은 무엇입니까?
두 파일 mymodule.erl
과 mymodule_tests.erl
이 있습니다. 내가 할 수있을 싶은 것은 :
- 이
eunit:test(mymodule)
또는mymodule_tests:test()
같은 테스트 케이스는
- 저장 한 라인으로 얼랑 쉘
- 실행 테스트에
- 스위치를 mymodule_tests mymodule_tests에 추가
- 실제로 테스트를 수행하기 전에 Erlang에서 mymodule 및 mymodule_tests를 다시로드하십시오.
나는 tr 내 자신의 테스트 방법을 작성했지만 작동하지 않습니다.
-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().
나는 또한 mymodule_tests를 업데이트 할 때 인 MyModule가 자동으로 다시로드 얻을 수 있는지 확인하기 위해 mymodule_tests에 -compile(mymodule).
를 넣어하지만 아무 소용이 시도했습니다.
나는 또한 꽤 봤지만 관련 정보를 찾을 수 없습니다. Erlang을 처음 접했을 때 나는 잘못된 용어를 찾고 있다고 생각하고 있습니다. erlang reload module
또는 다른 모듈을 컴파일 할 때 다른 모듈을 다시로드 할 수 없다고 가정하십시오.
'Test = fun (Atom) -> S = atom_to_list (A), c (A), c (S ++ "_ tests"), eunit :을 기본으로하는 커스텀 함수를 .erlang 파일에 작성할 수 있습니다. test (A) end'를 호출하여'Test (module)'라고 부를 수 있으며, 각 테스트 전에 모든 것을 자동으로 컴파일하고 다시 읽어 들일 수 있습니까? –