VS2008 - 在仿真器上运行CF库的单元测试的好处?

时间:2009-02-25 23:12:24

标签: .net unit-testing compact-framework

使用VS2008单元测试框架时,我看到testrunConfig有一个设置主机的选项。如果我将主机从“智能设备”更改为“默认”,则看起来我可以在不部署到模拟器的情况下运行测试。

我想测试一个为在Compact Framework上使用而构建的库,但它与UI无关。在Default主机上运行它是否合适?或者是否存在差异会使测试在模拟器上运行时实际中断而不是在本地计算机上运行? (我假设在Default上运行仍会使用CF .Net库,因为那些是测试引用的dll的库?)

1 个答案:

答案 0 :(得分:1)

如果将测试目标更改为“默认”,它将尝试在桌面上运行测试。问题在于您的测试将引用智能设备测试程序集,并且它们根本无法运行。你会得到一个错误:

System.ArgumentException: Object of type
'Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapterContext' 
cannot be converted to type 
'Microsoft.VisualStudio.TestTools.UnitTesting.TestContext'

那就是说,无论如何,我认为这不是一个好主意。您希望测试针对CF运行以确保正确的CF行为。在桌面上运行不会这样做。此外,还有很多非UI用例,你使用特定于CF的东西,比如WindowsMo​​bile命名空间或P / Invoking到coredll.dll。

针对模拟器或设备运行速度很慢,并且是一个真正的调试错误,但是它们具有抵消它的价值。