0

Win Mobile 5 と 6 (Professional) エミュレーターの両方で、私の開発マシンで正常に動作するユニット テストがいくつかあります。

ビルド サーバーで実行すると、ユニット テストの一部が失敗しますが、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 Emulator

テスト ラン コンテナー dll を含むディレクトリには、上記の最初のエラーで言及されているコントローラー dll も含まれます。

しばらくこれに頭を悩ませていたので、一部のテストだけが失敗し、1 台のマシンと 1 台のエミュレーターでしか失敗しない理由がわかりません。MSTest.exe と VSTestHost.exe の両方で診断ログを有効にしても、これ以上役立つエラー メッセージを取得できませんでした。

どんな提案もありがたく受け取った。

4

1 に答える 1

0

よくあることですが、質問をするとすぐに答えが表示されます。

この場合の問題は、ビルド サーバーのエミュレーターに .Net 3.5 がインストールされていなかったことです。VS からアプリケーションを実行すると .Net 3.5 がインストールされますが、単体テストを実行するとインストールされません。開発マシンでは、既にアプリを実行してから状態を保存しました(実行するたびに.Net 3.5を再インストールする必要がないようにするため)。これは、ビルド サーバーでは行われませんでした。

于 2011-02-02T10:43:16.260 に答える