我搜索过这些信息并看到类似的问题,但没有一个与此非常接近的问题.如果我错过了一个,我道歉.我希望你能指出我的方向.我正在开发基于Silverlight的项目,我的团队终于开始实施单元测试了.我和我团队的另一个成员负责推荐项目的单元测试框架.我们的基本标准是:
>该项目包含标准的ASMX .NET Web服务和Silverlight前端.如果可能的话,我们希望始终保持相同的测试属性,而不是使用一组用于Silverlight测试而另一组用于其他代码.
>与VS 2008集成非常重要.如果可行的话,我们想把它们全部放在一个屋檐下.我们很高兴能够从VS中完成单元测试.
>自动构建/签入测试.我们目前正在使用完全非自动化的VS 2008 / VSS 2005环境.我们正在转换为SVN进行源代码管理,我们的公司办公室将协助我们使用MSBuild自动化构建过程.我们当然希望能够尽可能地融入这种环境.由于我没有直接参与,我不确定这个过程的细节.如果您需要更多详细信息,请告诉我,我会看到我能找到的内容.
在这一点上,我和我的同事正在研究NUnit(以及可能的Silverlight选项)和MSTest以及Jeff Wilcox编写的Silverlight测试框架.虽然企业标准是NUnit,但他们对其他选项持开放态度,因为没有任何其他团队在进行Silverlight工作.
我大约在Roy Osherove’s Unit Testing Book的中途,所以我对编写测试感觉很好.我没有嫁给一个特定的框架,但企业似乎对NUnit或MSTest最开放.如果可能的话,我也想亲自参加一个很好的MSTest教程.
感谢您抽出宝贵的时间.如果您需要我的任何其他信息,请随时提出.
干杯,
史蒂夫
最佳答案 仔细检查,并确保首先体验这些可能性.通过在每个测试中编写一些测试来了解您正在查看的内容最简单,并找出您的工作流程.
Silverlight单元测试系统不像桌面.NET环境的官方发布的,成熟的测试框架那么成熟,因此您的体验可能会有所不同.了解当前存在的Silverlight测试解决方案(实际上是在Web浏览器内部运行)是专门用于帮助人们在Silverlight平台的上下文中覆盖他们的代码和组件,而不一定是快速或简单的测试 – 驱动开发和测试,您可以通过集成的Visual Studio工具.
Silverlight的沙盒安全模型使您可能期望的许多标准测试工具变得更加困难.
它实际上也是一个不同的平台,因此执行各种测试可能没有意义(例如:Web应用程序的“负载测试”……您可以“强调”Silverlight应用程序,或者查看其“性能” “,但”负载测试“是关于强调托管.XAP文件的计算机,并且对于Silverlight应用程序而言并不是特别有趣).
如果您更关心测试业务逻辑并进行良好的集成,那么强烈考虑编写可模拟的/ IoC代码,以便您可以开发大部分应用程序并测试它作为常规桌面.NET类库构建的版本〜然后,您可以在浏览器中拥有Silverlight的一部分测试.
给你的笔记:
>您是否真的要通过测试来测试Web服务调用?在Silverlight客户端代码和Web服务之间进行此类集成/客户端服务器测试非常非常困难.
>对于Silverlight单元测试框架,您将无法与Visual Studio 2008的IDE集成.您可以拥有一个Silverlight测试项目/应用程序,您可以按F5在Visual Studio中打开和调试并运行测试.但是,您不会右键单击“运行所有测试”或测试用例管理工具.
> Silverlight单元测试框架的自动化测试签入正在慢慢发展,有些人在CodePlex上编写了一组Silverlight测试运行器.您可能无法轻松获得此功能,并且需要设置构建/测试计算机,以便构建服务作为实际用户进程运行,以便它可以打开和控制Web浏览器
将来,在Silverlight Toolkit团队中,我们将在未来发布一定程度的自动化测试支持,以及简单的代码覆盖支持,但是截至今天(2009年10月),这些工具还不容易获得.