我在Win Mobile 5和6(专业版)模拟器上的dev机器上运行了一些单元测试。
在构建服务器上运行某些单元测试失败,但仅在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
testrunconfig文件令人兴奋。我认为我从默认更改的唯一内容是: - 启用部署:已选中 - 主机类型:智能设备 - 平台:Windows Mobile 6 Professional SDK - 设备:Windows Mobile 6 Professional Emulator
包含测试运行容器dll的目录还包含上面第一个错误中提到的Controllers dll。
现在已经把我的头撞了一会儿,我不知道为什么只有一些测试失败,只有一台机器和一台仿真器。通过打开MSTest.exe和VSTestHost.exe上的诊断日志记录,我无法获得任何有用的错误消息。
感激地收到任何建议。
答案 0 :(得分:0)
正如经常发生的那样,在提出问题后不久就会出现答案。
在这种情况下,问题是构建服务器上的模拟器没有安装.Net 3.5。从VS运行应用程序将安装.Net 3.5,但运行单元测试不会。在开发机器上我已经运行了应用程序,然后保存了状态(为了节省每次运行重新安装.Net 3.5)。这还没有在构建服务器上完成。