【发布时间】:2019-11-28 20:17:28
【问题描述】:
我创建了一个 .NET Core 3.0 MS 测试项目(键入控制台应用程序)。我有一个尝试读取文件的单元测试:
var imageFile = new System.IO.FileStream("../../../InputFiles/Documents/boksit.pdf", System.IO.FileMode.Open);
当我运行这个时,我得到这个错误:
System.UnauthorizedAccessException: Access to the path '...boksit.pdf' is denied.
我在最新的 Windows 10 上运行。我已授予所有人访问此文件及其包含文件夹的权限。我还尝试从 C:\temp\boksit.pdf 读取文件并得到相同的结果。
这不是 ASP.NET 应用程序。那么为什么它不能简单地读取这个文件呢?这是一个单元测试项目,所以需要能够读取文件。对此的任何帮助将不胜感激。我是 .NET Core 的新手,如果这是基本问题,我深表歉意 - 但我找不到这个问题的任何答案;一切都适用于 ASP.NET Core(当然,它有一个非常不同的权限模型)。
【问题讨论】:
-
你不应该在单元测试中读写文件。如果它由于错误代码以外的一种或另一种原因而失败,那么您的测试将因外部原因而失败(这就是您所遇到的)。你写的是集成测试,不是单元测试。
标签: c# .net unit-testing .net-core