【发布时间】:2010-10-14 12:55:57
【问题描述】:
我们有一个打算移植到 Silverlight 的 WinForms 应用程序。显然 UI 需要完全重写,但我们有很多业务逻辑都经过NUnit 测试的充分测试。我们使用ReSharper 在 IDE 中运行测试,使用 nunit-console 在持续集成机器上运行测试。
当我们开始将业务逻辑类移入 Silverlight 程序集时,我们如何让这些单元测试针对这些 Silverlight 程序集运行?我的理解是,没有significant tweaking,NUnit 无法运行 Silverlight 测试,并且说调整(以项目模板的形式)似乎是 VS2008 和 Silverlight 3 特定的(我们很可能会使用 VS2010 和 Silverlight 4为我们的港口)。
如果这是最好的选择,我们可以将我们的测试转移到另一个测试框架,但除了 NUnit 之外似乎没有什么其他的了。 Silverlight Unit Test Framework 看起来像是在浏览器中运行,这对于持续集成来说是一个非首创。
我知道Silverlight 4.0 assemblies can be loaded into a .NET 4.0 executable,但我不确定这对单元测试意味着什么。将我们的业务逻辑程序集编译为 Silverlight 4.0 DLL 并编写引用 Silverlight DLL 的全框架 .NET 4.0 NUnit 测试程序集是否可行?看起来这可能可行,但是有人通过单元测试成功地做到了这一点吗?
底线,我们应该为我们的单元测试做什么?我们需要一个解决方案
- 仍然允许我们在 ReSharper 测试运行程序中运行测试;
- 也可以从命令行运行;
- 适用于 VS2010。
我们不会在测试中实例化任何 UI 对象,因此那些讨厌的 DependencyObject 线程问题不是问题。我们只需要测试我们的 Silverlight 业务逻辑。
【问题讨论】:
标签: silverlight unit-testing nunit resharper