dotMemory ユニット 3.2 ヘルプ

導入

dotMemory ユニットは、一般的なユニットテストフレームワークと連携する追加フレームワークです。このフレームワークの目的は、コード内のあらゆる種類のメモリ問題をチェックするテストを作成できるようにすることです。たとえば、特定の種類のオブジェクトをメモリ内でチェックすることでメモリリークを特定するテストや、メモリトラフィックを追跡し、トラフィックがしきい値を超えた場合に失敗するテストなどです。つまり、dotMemory ユニットはメモリプロファイラの機能によってユニットテストフレームワークの可能性を拡張します。具体的には、dotMemory ユニットでは以下のことが可能です。

  • 特定の種類のオブジェクトについてメモリをチェックします。

  • メモリトラフィックをチェックします。

  • メモリスナップショット間の差分を取得する

  • dotMemory (スタンドアロン .NET メモリプロファイラー)でさらに調査するためにメモリスナップショットを保存します。

dotMemory ユニットの仕組み

  • dotMemory ユニットは、NuGet パッケージ(英語)(Visual Studio を ReSharper または JetBrains Rider と一緒に使用する場合に便利)または zip パッケージ(スタンドアロンの dotMemory ユニットランチャーを使用する場合)として配布されます。

  • dotMemory ユニットサポートを使用してテストを実行するには、ReSharper ユニットテストランナーを使用できます。この場合、Visual Studio と ReSharper、JetBrains dotCover、または JetBrains Rider がマシンにインストールされている必要があります。もう 1 つのオプションは、スタンドアロンの dotMemory ユニットランチャー(NuGet パッケージと zip ファイルの両方で利用可能)を使用してテストを実行することです。dotMemory ユニットスタンドアロンランチャーを使用するでランチャーを使用する方法を学びます。

  • dotMemory ユニットパッケージをインストールすると、ReSharper/Rider のユニットテストメニューに 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 ユニットは、特定の Assert 構文の使用を強制するものではないことに注意してください。テストの対象となるフレームワークの構文を使用します。例: 表示されているアサーションは NUnit 構文を使用していますが、MSTest 用に簡単に更新できます *:

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

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

通常のユニットテストと同じように「メモリ」テストを使用します。

  • 手動で問題(リークなど)を見つけたら、それをカバーするメモリテストを書きます。

  • プロアクティブなテスト用のテストを作成して、新しい製品機能によってメモリの問題が発生しないことを確認します。たとえば、オブジェクトがメモリに残っている、大量のメモリトラフィックが発生しているなどです。

入門

  • 独自のメモリテストの作成を開始する最も速い方法は、入門を読み取ることです。

  • テスト例を探す場合は、サンプルを参照してください。

  • 特定のフレームワークメソッドの詳細については、「リファレンス」を参照してください。

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

保存先

開く

dotMemory 10 – 2017.1

dotMemory 2017.2

dotMemory 2017.3 – 2019.1

dotMemory ユニット 1.0 – 2.3

+

-

-

dotMemory ユニット 2.4

-

+

+

dotMemory ユニット 3.0 – 3.2

-

-

+

2024 年 5 月 07 日