2

共通テストinit_per_group/2は、 で起動すると gen_server を終了しgen_server:start_linkます。ただし、サーバーを で起動しても問題ありませんgen_server:start

gen_serverおよびのこれらのメソッド (startおよびstart_link)のいずれかで開始できます。init_per_suite/1init_per_testcase/2

で gen_server を起動できないのはなぜinit_per_group/2ですかgen_server:start_link?

4

1 に答える 1

2

これはinit_per_group、各テスト ケースと同様に、 が別のプロセスで実行され、そのプロセスがグループの初期化の成功/失敗に関する情報を伝える終了理由で終了するために発生します。からtest_server:run_test_case_eval:

exit({Ref,Time,Value,Loc,Opts}).

gen_serverを実行するプロセスにリンクされておりinit_per_group、終了理由は ではなくnormalgen_serverは終了をトラップしていないため、gen_serverプロセスは同じ終了理由で終了します。

一方、init_per_testcaseはテスト ケース自体と同じプロセスで実行されるため、この問題は発生しません。

于 2016-04-18T13:05:31.300 に答える