LoginSignup
4
0

More than 5 years have passed since last update.

VisualStudio2017 で .NET 3.5 のテストをテストエクスプローラから実行できるのは 15.8 迄

Posted at

この件は何で起きたのか

昨年の VisualStudio2017 のアップデートの 15.9.2 を適用したら MSTest のテストをテストエクスプローラから実施できなくなった。
MSTest のコマンドで実施するしか手が無くなって駆動開発が死ぬ。つらい。
という話です。

ソースは?

.NET Framework 3.5 のMSTest のテストが VisualStudio 2017 15.9 のテストエクスプローラから実行できない-MSTest test of .NET Framework 3.5 can not be run from Test Explorer of VisualStudio 2017 15.9
を参照のこと。

このアップデートで死ぬのは次の様な環境を構築している人です。

  • .NET のバージョンにより出力を切り分けるタイプのライブラリで、新しいバージョンでその切り分けられて出力したクラスにアクセスできない場合。
  • 前述のライブラリを .NET 3.5.x 以下のプロジェクトに使用している場合。

具体的には Theraot.Core みたいな TaskBridge 系のライブラリのうち、.NET 4.0 以降では切り分けてTaskクラスを出力しないタイプを .NET 3.5.x 以下のプロジェクトに使用している場合です。

具体的な症例

.NET Framework 3.5 環境下で MSTest のプロジェクトを作成し、 VisualStudio 2017 のテストエクスプローラ上から テストの項目を右クリックより実行する。
VisualStudio 2017 15.8 上からでは実行することができるが、 15.9 上だと次のエラーが発生する様で実行することができない。
Microsoft.VisualStudio.TestPlatform.ObjectModel.TestPlatformException: Framework35 はサポートされていません。.Net Framework 3.5 を対象とするプロジェクトでは、Framework40 を使用して CLR 4.0 の "互換モード" でテストを実行してください。

つまり、.NET 3.5 でコンパイルすると テストエクスプローラからテストできないよってエラーである。
これの問題は、 VisualStudio2017 15.8 ではテストが実施出来たということで、アップデートにより .NET 3.5 のテストを 実施することができなくなったのである。

確認方法

Net35TestSample をcloneしてテストエクスプローラに表示されるテストを実行してみてください。できないです。

で何が言いたかったというと

誰か .NET 3.5に依存したプロジェクトを .NET 4.0 で実行する方法知りませんか?

4
0
0

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
4
0