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

-

-

+