2011-02-02 60 views
0

我有一些单元测试可以在Win Mobile 5和6(Professional)模拟器上的开发机器上正常运行。为什么我的一些SmartDevice设备在一台机器上测试失败而不是另一台机器的原因?

在构建服务器上运行某些单元测试失败,但仅在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专业SDK - 设备:Windows Mobile 6专业模拟器

包含目录测试运行容器DLL还包含上面第一个错误中提到的控制器DLL。

一段时间以来,我一直在反对这个问题,但我为什么只有一些测试失败,只能在一台机器和一个模拟器上感到茫然。通过打开MSTest.exe和VSTestHost.exe上的诊断日志记录,我一直无法获得更多有用的错误消息。

任何建议感激地收到。

回答

0

正如经常发生的那样,答案在提出问题后不久就出现了。

在这种情况下,问题在于构建服务器上的仿真器没有安装.Net 3.5。从VS运行应用程序将安装.Net 3.5,但运行单元测试不会。在开发机器上,我已经运行了应用程序,然后保存状态(以节省每次运行重新安装.Net 3.5)。这尚未在构建服务器上完成。

相关问题