dotMemoryユニット3.0ヘルプ

導入

dotMemory Unitは、あらゆる種類のメモリの問題についてコードをチェックするテストを作成できるユニットテストフレームワークです。例:これらは、特定の種類のオブジェクトについてメモリをチェックすることによってリークを判断するテスト、またはメモリトラフィックを追跡し、トラフィックがしきい値を超えた場合に失敗するテストです。言い換えれば、dotMemory Unitはメモリプロファイラの機能であなたのユニットテストフレームワークの可能性を広げます。より具体的には、dotMemoryユニットは可能にします:

  • 特定の種類のオブジェクトについてメモリをチェックします。
  • メモリトラフィックをチェックします。
  • メモリスナップショット間の違いを得る
  • dotMemory(英語) (スタンドアロン.NETメモリプロファイラ)でさらに調査するためにメモリスナップショットを保存します。

dotMemoryユニットのしくみ

  • dotMemoryユニットはNuGetパッケージ(ReSharperユニットテストランナーを使用する場合に便利)またはzipパッケージ(スタンドアロンdotMemoryユニットランチャーを使用する場合)として配布されます。
  • dotMemoryユニットをサポートするテストは、ReSharperユニットテストランナーを使用して実行できます。この場合は、ReSharper 9.1(またはそれ以降)またはdotCover 3.1(またはそれ以降)のどちらかがあなたのマシンにインストールされているはずです。もう1つの選択肢は、スタンドアロンのdotMemoryユニットランチャーを使用してテストを実行することです。ランチャーは、NuGetパッケージまたはdotMemoryユニットページ(英語)でダウンロード可能なzipから入手できます。dotMemoryユニットスタンドアロンランチャーを使用するのランチャーの使い方を学びましょう。
  • dotMemory Unitパッケージをインストールすると、ReSharperの単体テストメニューに追加項目dotMemoryユニットでユニットテストを実行するが表示されます。このモードでは、テストランナーは通常のテストロジックと同様にdotMemoryユニットフレームワーク呼び出しを実行します。テストを「通常の」方法で(dotMemoryユニットのサポートなしで)実行すると、設定によってはテストが失敗するか、またはdotMemoryユニット呼び出しが単に無視されます。
  • dotMemoryユニットは、MSTest、NUnit、xUnit.netなど、市販されているほぼすべての単体テストフレームワークと連携します。

これはどう見えるか

フレームワークを簡単に紹介するために、次のテスト例を検討しましょう。

[Test] public void TestMethod1() { ... // do some work dotMemory.Check(memory => Assert.That(memory.GetObjects(where => where.Type.Is<Foo>()).ObjectsCount, Is.EqualTo(0))); }

このNUnitテストはメモリから Foo 型のすべてのオブジェクトを選択し、そのようなオブジェクトがないことを表明します。このようなテストは、コード内でメモリリークを探すときに非常に一般的です。

dotMemory Unitでは、特定のAssert構文の使用を強制されていません。テストが書かれているフレームワークの構文を使うだけです。例:示されているアサーションはNUnit構文を使用していますが、MSTest *用に簡単に更新できます。

Assert.AreEqual(0, memory.GetObjects(where => where.Type.Is<Foo>()).ObjectsCount);

dotMemoryユニットを使用する場合

アプリロジックの単体テストと同じ方法で "メモリ"テストを使用します。

  • 手動で問題(リークなど)を見つけたら、それをカバーするメモリテストを書きます。
  • 予防的テストのためのテストを書く — オブジェクトがメモリ内に残っていたり、大量のメモリトラフィックが発生したりするなど、新しい製品機能によってメモリの問題が発生しないようにするため。

入門

あなた自身の "メモリ"テストを書き始める最も早い方法は入門を読むことです。dotMemoryユニットのインストールと「メモリ」テストの実行に関する情報が含まれています。テスト例を探すなら、サンプルセクションを参照してください。特定のフレームワークメソッドの詳細については、リファレンスのセクションを参照してください。

スナップショットとの互換性

に保存で開く
dotMemory 10 - 2017.1dotMemory 2017.2dotMemory 2017.3
dotMemoryユニット1.0 - 2.3+--
dotMemoryユニット2.4-++
dotMemoryユニット3.0--+
最終更新日: