私はEmacsを使用しており、ユニットテストの作業フローをできるだけ自動化しようとしています。私はそれが動作するように設定しているが、Erlang Shellが自分の変更を認識する前に、テスト中のモジュールまたはテストを含むモジュールを手動でコンパイルする必要があります。Erlangで単体テストを行う際のモジュールリロードを自動化するには?
私はmymodule.erl
とmymodule_tests.erl
の2つのファイルを持っています。私は何をできるようにしたいのです:
- 保存mymodule_testsをmymodule_testsするためのテストケースを追加し、スイッチErlangのシェルへ
eunit:test(mymodule)
またはmymodule_tests:test()
のような1行でテストを実行し、
- 実際にテストを実行する前に、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(module)'と呼ばれるテスト(A)end'を実行し、各テストの前にすべてを自動的にコンパイルして読み込みます。 –