我目前正在开发一个使用Silverlight 3 SDK的项目,我想为我的Silverlight代码创建单元测试。我希望这些测试不必在浏览器上下文中运行。我引用了SDK中的Silverlight单元测试二进制文件(Microsoft.Silverlight.Testing和Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight),它给了我编写测试所需的框架(测试属性存在)。
我目前遇到的问题是Silverlight中的单元测试未被任何测试运行者识别。 Test-Driven.NET只运行最基本的单元测试(即没有TestInitialize方法),Visual Studio 2010的测试运行器根本不会感知任何测试运行。例如,即使这个简单的单元测试也不会运行:
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace SlUnitTests
{
[TestClass]
public class Class1
{
[TestMethod]
public void Test1()
{
Assert.Fail();
}
}
}
有什么想法吗?
我忘了提到这个项目最初是一个Visual Studio 2008项目。我使用相同的Silverlight 3 SDK在VS2008中对Silverlight进行了这些单元测试,它们运行得很好。命令行上的ReSharper测试运行器和MSTest都能够运行基于Silverlight的单元测试 - 不需要浏览器上下文。当我的项目转换为VS2010时,Silverlight单元测试中断了。 对不起,感到困惑。
答案 0 :(得分:0)
遗憾的是,使用这些程序集无法轻松集成到标准(非浏览器)界面中。
如果您需要运行基本代码(没有用户界面代码;没有任何使用System.Windows)的一个选项,您可以在Visual Studio中为完整的.NET创建适当的类库和/或测试项目,然后“{来自Silverlight项目的源文件中的{3}}。