我目前正在研究单元测试Silverlight应用程序的不同选项。其中一个框架是Microsoft的Silverlight单元测试框架(由Jeff Wilcox开发,http://www.jeff.wilcox.name/2010/05/sl3-utf-bits/)。
我正在研究的一个场景是在Silverlight 3(PC)和Windows Phone 7上运行相同的测试.Silverlight单元测试框架(SLUT)在PC和手机上运行。为了防止必须复制或链接文件,我想将我的测试放入一个共享测试库,可以使用SLUT的WP7应用程序或使用SLUT的Silverlight 3应用程序加载。
所以我的问题是:SLUT会在引用的类库中定义加载单元测试,还是只在执行的程序集中加载?
答案 0 :(得分:8)
我做了一些研究,结果你可以告诉SLUT测试运行器要测试哪些组件。您可以通过在创建测试页时配置测试设置来完成此操作。
private void Application_Startup(object sender, StartupEventArgs e)
{
var setting = UnitTestSystem.CreateDefaultSettings();
setting.TestAssemblies.Add(typeof(TestInReferencedAssembly).Assembly);
RootVisual = UnitTestSystem.CreateTestPage(setting);
}
在上面的代码示例中,TestInReferencedAssembly是在运行SLUT测试运行器的应用程序引用的类库中定义的测试。您可以添加测试运行器应扫描的程序集以查找单元测试。在这种情况下,我添加了TestInReferencedAssembly所属的程序集。
我在Windows Phone 7上执行SLUT时没有测试此功能是否有效,但如果确实如此,我们应该可以在Phone和Desktop上运行相同的测试套件。