8

我们一直在通过创建一个普通的 vanilla .net 单元测试项目来创建 silverlight 单元测试,删除除 unittestframework 之外的所有引用,然后添加对我们需要的 SL 程序集(系统、System.Core 等)的引用。有关更多信息,请查看博客文章。我们可以做到这一点,因为我们遵循 MVVM 模式并且代码隐藏中几乎没有代码。我们不是在测试视图,而是在测试后面所有层的功能(基本上是 VM-M)。

现在,这使我们能够每天晚上在我们的团队构建中测试 silverlight 逻辑。这工作得很好,直到我们开始混合 SL 项目和普通的 .NET 项目。当我们选择所有 SL 单元测试并运行它们时,它们就通过了。.NET 单元测试也是如此。然而,当我们一次运行它们时,要么一组或另一组完全失败。我们看到的消息指出:“单元测试适配器抛出异常:无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息......”。我想问题是这两组测试使用不同的系统程序集,但我无法查明问题所在。

有没有人试过这个?干杯,菲尔

4

3 回答 3

1

使用两个单独的构建定义怎么样?它们都可以以相同的方式或同时触发。唯一的区别是您在一个中仅引用了 SL 项目,而在另一个中仅引用了 .NET 项目。

如果您不想从构建定义中引用项目,您可以创建几个解决方案来与您的构建一起使用,并在一个解决方案中仅引用 SL 项目,在另一个解决方案中仅引用 .Net 项目。

于 2010-02-18T15:20:24.383 回答
1

我猜在应用程序域中存在多个 System、mscorlib 等库可能会混淆测试执行环境的问题。

您可以将其分为 TFS 构建的多个测试运行,或者也许编写一个带有代码的 msbuild 脚本来为其中一个调用 mstest.exe 并以这种方式获得结果?

于 2009-11-05T08:03:42.730 回答
1

您还可以使用 Silverlight 测试项目(从 Silverlight Toolkit 项目模板创建)并使用此解决方案在 TFS 构建服务器上运行 Silverlight 测试。

于 2011-01-25T19:32:11.653 回答