Goのテストコードを並列化する。しながらコードを書く。スマートフォン用の表示で見るびくんびくんしながらコードを書く。いしきひくい系エンジニアのらくがき帳2019-12-02Goのテストコードを並列化する。一日目に引き続きGoのテストコードについてまとめていきたいと思います。テストの並列化の前に並列処理を行う上での注意点を見てみましょう。並列処理を行うに当たり、ループして同じ処理を繰り返す場合に、意図しない挙動になることがあります。下記に例を提示します。Playground実行してみるとわかりますが、自分の意図した挙動と異なるかと思います。関数実行がループよりも後になり、ループとしてはすでに終了した最後のiが関数内で利用されることでこのようなことが起こります。これを回避するには下記のように修正します。補足し、並列実行される関数に渡します。このため、意図した挙動になるのです。上記にしたことに注意し、前回記事のサブテスト化からサブテストの並列実行に移りましょう。並列実行が有効な事がわかるように今回の実装では関数内でsleepを掛けます。呼び出すことで並列化出来ます。ループが始まってすぐの部分でテストケースの補足を行います。分くらいの実行時間でテストが終了します。2.017sということで、直列で実行した通りの時間となりました。CIなどでテストを回す場合や、ローカルでテストを回す場合、テストのボリュームが大きくなるにつれ、テストの時間が増えていきます。した細かい部分で処理時間を短くしていきましょう。10:00Goのテストコードを並列化する。(1)月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。