实际上从单元测试项目执行以下代码时出现错误... 其中import是以下代码中的xml文件..
XmlTextReader importReader= new XmlTextReader(System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Importcontent/import"));
上面的代码出现在不同项目(类库)中的一个方法中,用于单元测试项目中的测试方法
在web项目中存在上述路径。 和
的价值System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Importcontent/import")
是null ..我无法获取文件的完整路径我猜bcos主机环境没有运行(web项目) 从webproject运行时,上面的代码工作正常,即它返回确切的路径。 而在从测试项目运行时返回null值。
请告诉我从测试项目运行时如何获取文件路径(web项目中存在文件)。
答案 0 :(得分:1)
您可以将文件名作为参数传递给方法,而不是让方法尝试检索它:
public void SomeMethod(string filename)
{
using (XmlTextReader importReader = new XmlTextReader(filename))
{
...
}
}
现在,当您从Web层(控制器)调用此方法时,您可以传递如下文件名:
public ActionResult Index()
{
string filename = Server.MapPath("~/Content/Importcontent/import");
SomeMethod(filename);
...
}
并且在测试项目内部,您可以传递您使用单元测试部署的其他文件。