29

作成したポータブルクラスライブラリの単体テストを試みていますが、ターゲットと同じフレームワークサブセットでテストされていることを確認したいと思います。

Visual Studio ALM + Team Foundation Serverのブログによると、MSTest単体テストフレームワークはVisual Studio2012RCでPCLに変換されました。ただし、ポータブルクラスライブラリを作成してから、VS2012RTMでMSTestフレームワークを参照することはできません。

  • [参照]ダイアログを参照すると、PCLと互換性のある単体テストコンポーネントが登録されていないことがわかります。
  • プロジェクトファイルに手動GAC参照を追加してMicrosoft.VisualStudio.QualityTools.UnitTestFramework、参照が見つからないビルドエラーを生成します。
  • に手動の直接アセンブリ参照を追加するC:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ReferenceAssemblies\v4.0\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dllと、UnitTestFrameworkアセンブリが互換性のないmscorlibバージョンを参照していることを示すビルド警告が生成されます。

に別のMSTestアセンブリUnit Test Library (Windows Store apps)を参照するプロジェクトタイプがあることがわかりました(初期の回答のおかげで)。このプロジェクトタイプは、UIのない​​小さなWindowsストアアプリを作成します...マニフェストとすべてを完備しています。また、ターゲットとするフレームワークを指定することもできません。これは、Windowsストアアプリ専用のようです。C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0\ExtensionSDKs\MSTestFramework\11.0\References\CommonConfiguration\neutral\Microsoft.VisualStudio.TestPlatform.UnitTestFramework.dll

テスト対象のライブラリと同じフレームワークサブセットを対象とする単体テストアセンブリを使用して、ポータブルクラスライブラリプロジェクトをテストする必要があるという誤った想定の下で...

.NETポータブルクラスライブラリの単体テストアセンブリを作成するにはどうすればよいですか?

(私はPCLを対象とする他のフレームワークを受け入れていますが、これを考慮に入れているMSTest以外の他のソリューションについては現在気づいていません。)

4

5 に答える 5

2

現時点で私が知る限り、ユニテスティング用の PCL ライブラリはありません。

しかし、私はこのプロジェクトをgithubで見つけました。これは有望であり、必要なものを正確にターゲットにしています:

https://github.com/jbtule/PclUnit

Nunit と同じ単体テスト スタイルに従いますが、XUnit から一部のものを借用しているため、それに適応するのはかなり簡単です。

于 2013-12-27T17:53:42.573 に答える
1

最近この質問をフォローアップして、新しいソリューションの設定を試みましたが、Portable Class Library今すぐ単体テストできるものを手に入れました。以前に何を試したか正確には思い出せませんが、現在は次のように動作しています。

  • Visual Studio プレミアム 2013 Update 4
  • タイプの 1 つのプロジェクトPortable Class Library
  • 1 つの Windows フォーム プロジェクト
  • 1 つの Windows、1 つの Windows Phone、および 1 つの....Sharedプロジェクトで構成される 1 つのユニバーサル アプリ
  • One Unit Test プロジェクト

...SharedユニバーサルからのプロジェクトはApp.xamlファイルを除いて空なので、これは今のところ実際には使用されていません。

UI を含むすべてのプロジェクトは、 type のプロジェクトを参照Portable Class Libraryし、まったく同じコードを使用して動作します。

ユニット テスト プロジェクトは、 からのコードも参照しますPortable Class Library。通常の方法で参照を追加しました ( を右クリックしReferences、-Add referenceから PCL プロジェクトを選択します) 。SolutionProjects

ソリューションの構造は、次のスクリーンショットに示すとおりです。

ここに画像の説明を入力

昨年、PCL 単体テスト全体を機能させようとしたときの問題が何であったかは完全にはわかりませんが、今では正常に機能しているようです。

必要に応じて、さらに詳しい情報をお尋ねください。可能であればお手伝いします。

于 2015-08-03T19:28:14.803 に答える
0

ViewModels を含む 1 つの PCL を含む Windows ストアと Windows Phone 用のユニバーサル アプリがあります。単体テスト プロジェクトを作成し、ビューモデルを「リンクされたファイル」として追加しました。これは、Hello World アプリケーションで文字列をチェックする小さなテストですが、うまくいくようです。

このソリューションが私の将来のテストのニーズを満たすかどうかは、時が経てばわかります。

于 2014-12-06T22:52:01.730 に答える
0

ポータブル テスト ライブラリは、ここ (私にとって) にある Windows 8 SDK の下にあります。

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0\ExtensionSDKs\MSTestFramework\11.0\References\CommonConfiguration\neutral\Microsoft.VisualStudio.TestPlatform.UnitTestFramework.dll

Assert クラスと必要な [TestXXX] 属性があることがわかります。ポータブル ライブラリ プロジェクトを作成し、そのアセンブリへの参照を追加すると、Visual Studio のテスト エクスプローラーには [TestMethod] 属性でマークされたテストが表示されますが、実行されません。

于 2012-10-05T17:39:31.903 に答える