2015-09-18 13 views
25

Visual Studio 2015でWindowsユニバーサルクラスライブラリ(.NET 4.6)をテストする場合、 "red-> green-> refactor"サイクルで必要な時間はかなりです長いです。私のテストプロジェクトは、単なるMSTestの "Unit Test App"プロジェクトです。新しいソリューション、新しいサブジェクトとテストプロジェクト、そして基本的なint Add(int n1, int n2)メソッドの最も簡単なシナリオでも、それは約8-15秒かかります。これは合格/不合格が表示されるまで "run test"をクリックしてからの(小さなコード変更を行った後の)時間です。UWPのVisual Studio 2015でユニットテストをスピードアップする方法

WPFベースのソリューションで同じ実験を行っている私のマシン(Win 10 pro)では、約1〜2秒が得られます。

UWPシナリオでは、実際のテスト時間自体が79ミリ秒としてリストされています。残りの時間はユニットテストアプリコンテナをコンパイルしてデプロイすることです。

UWPでTDDを大幅にスピードアップする方法はありますか?

答えて

32

TDDサイクルが長くかかる理由は、すべてのUWPコードをAppContainerで実行する必要があり、パッケージ化と展開が遅くなるためです。

この問題を回避する方法は、AppContainerで実行する必要のない別のプロジェクトにできるだけ多くのコードを分けて、代わりにそのプロジェクトをテストすることです。

解決策は、UWPクラスライブラリではなく、アプリケーションロジック用の移植可能なクラスライブラリを使用することです。新しいプロジェクト]ダイアログボックスで、ポータブルクラスライブラリを見つけることができます:

enter image description here

デフォルトの設定は動作するはずです:

enter image description here

あなたはその後、UWPからへの参照を追加する必要がありますあなたがそれを消費することができるポータブルライブラリ。 - あなたは4.5.2からのユニットテストプロジェクトのターゲットフレームワークを変更する必要があります。この作品を作るために(

enter image description here

注:ポータブルなライブラリをテストするには、通常の非UWPユニットテストプロジェクトを使用しますこれはデフォルトです)を4.6に設定します。

通常のユニットテストプロジェクトから実行するユニットテストは、AppContainerで実行する必要がないため、できるだけ早く実行されます。私はこれをテストし、内側のループのスピードは大きかった。希望が助けてくれる!

関連する問題