2017-04-22 9 views
24

新しい.csprojフォーマットを本当に愛しています。それは恐ろしい(制限された)project.jsonよりずっと優れています。Visual Studio 2017で特定のターゲットフレームワークの単体テストをどのように実行しますか?

しかし、私が解決しようとしていることが1つあります。私は私の(複数の)テストプロジェクトを1つのマルチターゲットプロジェクトに統合しました。

<TargetFrameworks>netcoreapp1.0;net40;net35</TargetFrameworks> 

しかし、ターゲットフレームワークを選択するにはVisual Studioでのテストエクスプローラで任意のツールがあるようには思えない - それは常にちょうど最初のものを実行します。

<TargetFramework>net35</TargetFramework> 
に...特定のフレームワークと <TargetFramework>要素を追加することではなく、手で編集するのMSBuild( .csproj)ファイルを頼ることなく、ターゲットフレームワークを選択する方法はあります - 私は回避策を見つけましたか? GUIのいくつかのオプションを探しています。具体的には、テストをデバッグする前にフレームワークを切り替えたり、リリース前にこの行を削除しなければならないことを忘れないように、 .csprojファイルを編集することを忘れてはいけません。

答えて

0

'or'演算子を使用して、runsettingsファイルでTargetFrameWorkVersionを使用します。

+1

例を挙げてください。また、私は既にGUIの中で何かを期待していました。 – NightOwl888

+0

.runsettingsファイルはFramework35、Framework40、Framework45の値のみをサポートし、.NETコアはサポートしていません。 –

3

が、私は質問がVSについてであることを知っているが、私は便利という<TargetFrameworks>ノードで複数のフレームワークにdotnet testsコマンドwill run tests for all frameworksをターゲットとする場合:

> dotnet test 
... 
Test run for [projectPath]\bin\Debug\netcoreapp1.1\XUnitTestProject.dll(.NETCoreApp,Version=v1.1) 
... 
Test run for [projectPath]\bin\Debug\net461\XUnitTestProject.dll(.NETFramework,Version=v4.6.1) 
... 

NCrunchまた、複数のターゲットと、自動的にすべてのターゲットの実行テストを認識することができます:

enter image description here

+0

デバッグには役に立たないかもしれません。特にライブラリがあり、デバッグする唯一の方法はVisual Studio内でテストを実行する方法です。 – NightOwl888

+0

@ NightOwl888は、VSが現在そのUIを持っているようには見えません。 NCrunchを試してみてください - ユニットテストのための優れたツールで、テスト対象のコード行を右クリックしてデバッグをサポートしています。 –

+0

ありがとうございますが、この製品には[オープンソースライセンスなし](https://www.ncrunch.net/buy/faq#discount)があります。私たちのチームに加わることを望む人をサポートする必要があり、NCrunchのライセンスはその要件を満たしていません。 – NightOwl888

関連する問題