我想要针对示例 XML 文件运行单元测试。我应该如何将这些文件暴露给单元测试?我尝试过使用内容构建操作,但我无权访问应用程序上下文,因此 GetContentStream 已退出。
我知道我可以将 DataContext 用于 SQL 数据库,但我觉得这是错误的方法。
如果您希望在测试中部署 XML 文件,您有以下几种选择:
嵌入内容
您可以将 Xml 文件作为内容嵌入到程序集中。
- 将文件添加到您的测试项目中。在此示例的上下文中,该文件位于项目的根目录下。
- 将文件的属性更改为嵌入式资源。
- 在测试期间,您可以使用以下命令以流的形式访问文件获取清单资源 http://msdn.microsoft.com/en-us/library/xc4235zt.aspx.
Example:
[TestMethod]
public void GetTheFileFromTheAssembly()
{
Stream fileStream = Assembly.GetExecutingAssembly()
.GetManifestResourceStream("MyNamespace.File.xml");
var xmlDoc = new XmlDocument();
xmlDoc.Load(fileStream);
Assert.IsNotNull( xmlDoc.InnerXml );
}
部署项目属性
您可以使用注释来注释测试方法或类[部署项目属性] http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.webtesting.deploymentitemattribute%28v=VS.100%29.aspx。文件路径是相对于解决方案的。
[DeploymentItem("file.xml")] // file is at the root of the solution
[TestMethod]
public void GetTheFileDeployedWithTheTest()
{
var xmlDoc = new XmlDocument();
xmlDoc.Load("file.xml");
Assert.IsNotNull(xmlDoc.InnerXml);
}
测试设置
您可以使用测试设置文件中的部署配置来部署单个文件或整个目录。 (测试 -> 编辑设置 -> 文件名.testsettings)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)