我们通过创建一个普通的.NET单元测试项目,删除除了unittestframework之外的所有引用,然后添加我们需要的SL程序集的引用 (system、System.Core等) 来创建silverlight单元测试。关于更多信息,请查看this博客文章。由于我们遵循MVVM模式并且几乎没有代码在codebehind中,所以我们可以这样做。我们不是在测试视图,而是在测试所有层次的功能(主要是VM-M)。
现在,这使我们能够每晚在我们的团队构建中测试silverlight逻辑。这个方法运作得相当好,直到我们开始混合使用SL项目和正常的.NET项目。当我们选择所有SL单元测试并运行它们时,它们都通过了。.NET单元测试也是如此。但是当我们同时运行它们时,有一组或另一组会完全失败。我们看到的消息是: "Unit Test Adapter threw exception: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information." 我猜问题在于这两组测试使用了不同的系统程序集,但我还没有能够找到问题所在。
现在,这使我们能够每晚在我们的团队构建中测试silverlight逻辑。这个方法运作得相当好,直到我们开始混合使用SL项目和正常的.NET项目。当我们选择所有SL单元测试并运行它们时,它们都通过了。.NET单元测试也是如此。但是当我们同时运行它们时,有一组或另一组会完全失败。我们看到的消息是: "Unit Test Adapter threw exception: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information." 我猜问题在于这两组测试使用了不同的系统程序集,但我还没有能够找到问题所在。
有人试过这个吗? 谢谢, 菲尔