私が Erlang で Package を使わない、ただ一つの理由
結論
Common Test と相性が悪いから。
補足
kai の tcp_server をファイル分割しようと思い、試しに Package を使ってみたのですが、Common Test で下記のようなエラーが出てしまいました。
=== ERROR! init_per_testcase crashed! Line: {kai_tcp_server_SUITE,init_per_testcase,27} Reason: {undef, [{'kai_tcp_server.ets',update_counter, [cover_internal_data_table, {bump,'kai_tcp_server.sup',start_link,4,1,28}, 1]}, {'kai_tcp_server.sup',start_link,4}, {kai_tcp_server_SUITE,init_per_testcase,2}, {test_server,my_apply,3}, {test_server,init_per_testcase,3}, {test_server,run_test_case_eval1,4}, {test_server,run_test_case_eval,6}]}
仕方なく、kai_tcp_server.sup に -import(ets). を追加した所、テストは無事にパスしました。
しかし、Coverage log からコード行数やカバレッジ率が表示されるのに、ソースコードが参照できない為、デバックが困難になってしまいました。
他にも、試して行く中で多々ハマり所があったので、個人的には、あまり積極的に使いたいとは思えませんでした。
Common Test を使わないプロジェクトには良いのかもしれません。