My Visual Studio 2015ソリューションに、.NET 4.5を対象とした単体テストプロジェクトが含まれています。異なる.netバージョンを対象とする場合の単体テストの問題
私がテストしているコードは.NET 4.0 WPFアプリケーションです。プラットフォームの違いは、Visual Studioが「非同期タスク」テストメソッドを正しく認識できるようにするために必要です。
WPFアプリプロジェクトはMvvmLight NuGetパッケージに依存しているので、ユニットテストプロジェクトでもこのパッケージを参照する必要がありました。
ユニットテストのコンパイルは、MvvmLight 5.3.0.19038に5.3.0.19026への参照が含まれていると予想されるため失敗します。
私は.NET 4.0をターゲットに手動MvvmLightパッケージ(およびその依存関係)を作るためにユニットテストプロジェクトのpackages.configファイルを編集しようとした、のように:
<package id="MvvmLight" version="5.3.0.0" targetFramework="net40" />
はしかし、アセンブリはまだ同じです。
このプロジェクトをどのようにコンパイルできますか?それでも
[TestMethod]
public void MyTestMethod()
{
TaskEx.Run(async() =>
{
//Replace with unit test code
await TaskEx.Delay(1000);
}).GetAwaiter().GetResult();
}
これは、すべてのテストのために動作するかどうかわからないが、それは始めるための方法です:
あなたのユニットテストプロジェクトで 'async await'を使用していますが、テスト対象のプロジェクトではありません。テスト対象のプロジェクトを同様のフレームワークにアップグレードできませんか?あるいは、あなたのテストから 'async/await'をドロップしますか? – Kritner
私もasync awaitを使ってテスト対象のプロジェクトにしています。このため私はMicrosoft.Bcl.Async NuGetパッケージを使用します。私はこの時点で.NETバージョンをアップグレードすることはできません。 –