LoginSignup
18

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-03-12

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18