【问题标题】:Reasons why some of my SmartDevice unit tests fail on one machine and not another?为什么我的一些 SmartDevice 单元测试在一台机器上失败而不是另一台机器上失败?
【发布时间】:2011-02-02 10:23:29
【问题描述】:

我有一些单元测试在我的开发机器上运行良好,在 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的目录还包含上面第一个错误中提到的Controllers dll。

现在我已经对此进行了一段时间的抨击,我不知道为什么只有一些测试失败并且只在一台机器和一个模拟器上失败。通过在 MSTest.exe 和 VSTestHost.exe 上打开诊断日志记录,我无法获得更多有用的错误消息。

任何建议都非常感谢。

【问题讨论】:

    标签: unit-testing emulation windows-mobile-6 smart-device


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-01-14
      • 1970-01-01
      • 2022-06-19
      • 1970-01-01
      • 1970-01-01
      • 2015-06-29
      • 2017-08-07
      • 1970-01-01
      • 2017-07-05
      相关资源
      最近更新 更多