質問

プロジェクトで並列ユニットテストの使用を検討していますが、このような並列ユニットテストを実際に作成するためのベストプラクティスについて疑問に思っていました。

役に立ちましたか?

解決

並列ユニットテストで同時に実行できるテストを意味する場合、私があなたに与えることができる最も重要なアドバイスは、いわゆる共有フィクスチャを避けることです。

xUnitテストパターンは、フィクスチャという用語を説明しています。 永続データと一時データを含む、各テストケースが実行されるコンテキスト全体として説明されています。

共有フィクスチャは、テストケースが実行中にコンテキストを共有することを示します。そのコンテキストが変更可能な場合、競合状態が発生する可能性があります。

共有フィクスチャ不変(いわゆる不変共有フィクスチャ)を保持すると、テストを並行して実行できますが、さらに優れた、いわゆるフレッシュフィクスチャ(各テストケースに独自のフィクスチャがある)はスレッドセーフですテストケース自体のみがフィクスチャにアクセスできるため、定義。

共有フィクスチャの例には、共有データベースを使用するあらゆる種類のテストが含まれますが、テスト対象システム(SUT)またはテスト自体のいずれかに静的なメモリ内状態があるテストも含まれるため、それを避ける必要があります。

SUTが共有(静的)データにアクセスする場合、そのアクセス自体がスレッドセーフでなければならないことにも留意してください。

他のヒント

いくつかの興味深いリンク:

ユニットテストの整理

単体テストの並列実行

このStackoverflowの質問には、いくつかの興味深い回答があります。これが役立つことを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top