VisualStudio
MSTest

[VS2017][C#] MsTestで単体テストを行なう方法

More than 1 year has passed since last update.

VS2017のC#プロジェクトでMsTestの単体テストを作成する方法メモ


テストの追加方法

C# .NET プロジェクトでは以下の操作を行なう


  • ファイル => 追加 => プロジェクト を選択

  • Visual C#/テスト => 単体テスト プロジェクト(.NET Framework) を選択

  • 作成された単体テストプロジェクトの、参照を右クリック => 参照の追加を選択

  • プロジェクト => ソリューション からテスト対象のプロジェクトへの参照を追加


基本的な使い方

以下の記事でほとんど説明されているため、以下を参照すると良いと思います。

MsTestによるユニットテストの解説 - Qiita

公式(MSDN): 単体テストの基本


テストユーティリティ


Chaining Assertion

プライベートメソッドとかパラメータを使ったテストとかを書きやすくできるらしい(検証中)

Chaining Assertion - Home

neuecc/ChainingAssertion: Method Chaining base UnitTesting Extension Methods and Dynamic Private Accessor for MSTest, NUnit, xUnit.net.

MSTestでプライベートメソッドのテストを行う(自力) - なか日記


既知の不具合


MSTestのテスト項目がテストエクスプローラーに表示されなくなる

%TEMP%\VisualStudioTestExplorerExtensions を削除すると表示されました。

%TEMP%C:\Users\username\AppData\Local\Temp あたりになっているはずですが、環境変数を確認してください。

参考:

c# - Unit Tests not discovered in Visual Studio 2017 - Stack Overflow


ReShaperで同様にテストが実行できなくなる

%TEMP%\JetBrains\ReSharperPlatformVs15\vAny_XXXXXX を削除すると表示されました。


.NET 4.5 から .NET 4.6 環境に上げるとでVisualStudioで動作しなくなる(コマンドラインからは実行できる)

NuGetのパッケージで以下のパッケージの両方が入っているか確認してください。

(自分の場合はMSTest.TestAdapterだけが入っていなくて動作しませんでした)


  • MSTest.TestFramework

  • MSTest.TestAdapter


関連

[C#][.NET][WPF] WPFと関連知識まとめ - Qiita