2012-10-01 4 views
29

私が作成したポータブルクラスライブラリを単体テストしようとしています。ターゲットと同じフレームワークサブセットでテストされていることを確認します。.NETポータブルクラスライブラリ用の単体テストアセンブリを作成する方法を教えてください。

Per the Visual Studio ALM + Team Foundation Server blog、MSTestユニットテストフレームワークはVisual Studio 2012 RCでPCLに変換されました。しかし、移植可能なクラスライブラリを作成してからVS2012 RTMで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バージョンを参照しているという警告が表示されます。

私はC:\Program Files (x86)\Microsoft SDKs\Windows\v8.0\ExtensionSDKs\MSTestFramework\11.0\References\CommonConfiguration\neutral\Microsoft.VisualStudio.TestPlatform.UnitTestFramework.dll異なる MSTestをアセンブリを参照するプロジェクトのタイプUnit Test Library (Windows Store apps)があること(早期の回答のおかげで)見つけました。このプロジェクトタイプは、マニフェストとすべてを備えた、小さなUIなしのWindowsストアアプリを作成します。また、私が対象としているフレームワークを指定することもできません。Windows Storeアプリケーションの場合にのみ表示されます。私は図書館、被試験と同じフレームワークのサブセットをターゲットユニットテストアセンブリと私のポータブルクラスライブラリプロジェクトをテストする必要があります潜在的に障害のある仮定の下で

...

私はどのように作成します.NETポータブルクラスライブラリの単体テストアセンブリ

(私は考慮にこれをとっているMSTestを以外の他のソリューションのちょうど現在気づかないよ、また、PCLを標的とする他​​のフレームワークをオープンしています。)

答えて

0

ポータブルテストライブラリは、Windows 8 SDKの下にあります(私にとっては)ここにあります:あなたはそれがAssertクラスと必要な[TestXXX]属性を持っている参照してくださいよ

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

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

+0

私はこれがどのようにここで質問者を助けているのか分かりませんか?質問をしようとしている場合は、詳細を述べ、新しい質問を開きます。 –

+0

このアセンブリリファレンスへの「適切な」方法は、「ファイル」 - >「新規プロジェクト」 - >「Windowsストア」 - >「ユニットテストライブラリ」(Windowsストアアプリケーション)です。これにより、テストランナはテストを実行できます。もちろん、これはマニフェストとすべての "アプリケーション"を作りますが、実際には "ポータブルクラスライブラリ"ではありません。より公式にサポートされている別の方法を見つけることができるかどうかがわかります。そうでない場合は、私が得た答えに近いかもしれませんか? –

+0

私は上記の情報で質問を更新しました。私は何らかの形で私がどのフレームワークをターゲットにしているのかを指定できる答えを得たいと思っていますが、それはあまりにも多くのことを求めているかもしれません。我々は見るであろう。 –

2

私が知っている限り、この時点では、ユニット化のためのPCLライブラリはありません。

しかし、私はあなたが必要な正確に何有望とターゲット思わgithubの上で、このプロジェクトが見つかりました:

https://github.com/jbtule/PclUnit

それはNUnitのと同じユニットテストのスタイルを次のものxUnitからいくつかのものを借りたので、それが必要それに適応するのはかなり簡単です。

4

xUnitはPCLユニットテストをサポートしています。 http://xunit.github.io/

+0

PCL単体テストアセンブリだけで.NET 4.5全体を実行するのではなく、対象となるフレームワークのサブセットに対してテストを実行する方法を示すドキュメントを教えてください。私が見ていることから、xunitのサポートはテストアセンブリをPCLとして書いているだけで、ランナーもそのサブセットで実行することを保証するものではありませんが、ドキュメントが不足している可能性があります。 –

+1

私は今あなたが探しているものをより良く理解しています...あなたは間違ったことをテストすることに触れています。コードがPCL compatの場合。各プラットフォームで同じように実行する必要があります。特に単体テストの観点から、私はあなたがプラットフォームについて気にするべきではないと思います。しかし、統合テストを行っている場合、プラットフォームは重要です。それからxUnitはおそらく今あなたを助けません。しかし、見てください:https://github.com/xunit/devices.xunitあなたはそこに貢献したいかもしれません。 – noocyte

+1

私たちは、Autofacを維持しながらPCLツーリングが間違いないことを発見しました。時々間違ったプラットフォームのサブセットを選ぶことができます。実際のプラットフォームのサブセットでテストを実行すると、正常に動作していることを検証するのに役立ちます。 –

0

私はWindows用の汎用アプリを持っています& Windows Phoneには、ViewModelsで1つのPCLが含まれています。私は単体テストプロジェクトを作成し、viewmodelを「リンクされたファイル」として追加しました。こんにちは世界のアプリケーションで文字列をチェックする小さなテストですが、動作するようです。

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

1

最近この質問をフォローアップして、私は新しい解決策を設定しようとしましたが、今すぐユニットテストできるPortable Class Libraryがあります。私は正確に私が前に試したものを覚えているが、ここで私が今働いて得たものであることはできません。

    Portable Class Library
  • 一つのWindowsフォームプロジェクトタイプの
  • Visual Studioのプレミアム2013更新4
  • 一つのプロジェクト
  • ワン1つのWindowsからなるユニバーサルアプリ、1のWindows Phoneと....Sharedプロジェクト
  • 一つのユニットテストプロジェクト

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

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

単体テストプロジェクトもPortable Class Libraryからのコードを参照して、私が参照に通常の方法を追加しました(右Add referenceReferencesをクリックし、SolutionからPCLプロジェクトを選択してください - 。Projects

溶液構造はようです私は昨年作業全体PCLユニットテストの事を取得しようとしたときに問題が何であったかのように全くわからないんだけど、

enter image description here

:下のスクリーンショットに示されていますそれは今のところうまくいくようです。

詳細については、必要に応じてお気軽にお問い合わせください。できるだけお手伝いします。

関連する問題