私が 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 を使わないプロジェクトには良いのかもしれません。