我有单元测试我想针对示例XML文件运行,我应该如何将这些文件暴露给单元测试?我已尝试使用内容构建操作,但我无法访问应用程序上下文,因此GetContentStream已经用完了。
我知道我可以将DataContext用于SQL数据库。但我觉得这是错误的做法。
答案 0 :(得分:20)
如果您希望在测试中部署XML文件,可以选择以下几种方法:
嵌入式内容
您可以将Xml文件作为内容嵌入到程序集中。
示例:
[TestMethod]
public void GetTheFileFromTheAssembly()
{
Stream fileStream = Assembly.GetExecutingAssembly()
.GetManifestResourceStream("MyNamespace.File.xml");
var xmlDoc = new XmlDocument();
xmlDoc.Load(fileStream);
Assert.IsNotNull( xmlDoc.InnerXml );
}
<强> DeploymentItemAttribute 强>
您可以使用[DeploymentItemAttribute]注释测试方法或类。文件路径是相对于soltuion。
[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);
}
测试设置
您可以使用“测试设置”文件中的“部署”配置部署单个文件或整个目录。 (测试 - &gt;编辑设置 - &gt; Filename.testsettings)