2011-02-02 8 views
0

私は、Win Mobile 5と6(Professional)エミュレータの両方で自分の開発マシンで正常に動作する単体テストをいくつか持っています。私のSmartDevice単体テストのいくつかが1台のマシンで失敗し、別のマシンで失敗する理由はありますか?

ビルドサーバで実行すると、一部のユニットテストは失敗しますが、Win Mobile 6エミュレータ(すべてのテストではWin Mobile 5エミュレータを使用します)でのみ失敗します。以下のようなエラーが発生した失敗

テスト:

Test method XXXXXMobile.Test.ManifestTests.TestCrewManifest threw exception: System.MissingMethodException: Could not load type 'XXXXXMobile.Controllers.ManifestController' from assembly 'XXXXXMobile.Controllers, Version=1.0.4049.32739, Culture=neutral, PublicKeyToken=null'.. 

Test method XXXXXMobile.Test.PermissionTests.TestMenuBarPermissions threw exception: System.MissingMethodException: Method not found: op_Implicit System.Object.. 

でテストをオフに設定するコマンドライン:

C:\hudson\jobs\XXXXX Mobile (WinMobile 6 Emulator Tests)\workspace>e:\VS9\Common 
7\IDE\MSTest.exe /runconfig:YYYY\WinMobile6Emulator.testrunConfig /testcontainer 
:YYYY\XXXXXMobile.Test\bin\Release\XXXXXMobile.Test.dll 

testrunco​​nfigファイルはありきたりです。私は、デフォルトから変更だけのものだったと思う: - 展開を有効にします - ホスト・タイプ チェック:スマートデバイス を - プラットフォーム:Windows Mobileの6 ProfessionalのSDK - デバイス:のWindows Mobile 6 Professionalのエミュレータ

含むディレクトリテスト実行コンテナdllには、上記の最初のエラーで説明したコントローラDLLも含まれています。

私はこれに対してしばらく頭を抱えていましたが、なぜいくつかのテストだけが失敗し、1台のマシンと1台のエミュレータでしか動作しません。私は、MSTest.exeとVSTestHost.exeの両方で診断ログを有効にすることで、これ以上役に立つエラーメッセージを表示することができませんでした。

感謝の意を表します。

答えて

0

頻繁に起こるように、質問はすぐに回答が表示されます。

この場合、ビルドサーバー上のエミュレータに.Net 3.5がインストールされていないという問題がありました。 VSからアプリケーションを実行すると、.Net 3.5がインストールされますが、単体テストを実行しても動作しません。私はすでに、アプリケーションを実行し、状態を保存した(私は毎回.Net 3.5を再インストールする必要がなくなりました)devマシンで。これはビルドサーバー上で行われていませんでした。

関連する問題