Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NUnit-读取和写入文件的程序集_C#_Unit Testing_Nunit - Fatal编程技术网

C# NUnit-读取和写入文件的程序集

C# NUnit-读取和写入文件的程序集,c#,unit-testing,nunit,C#,Unit Testing,Nunit,我正在对一个程序集进行单元测试,该程序集使用File.writeAllines()和File.ReadAllText()读取和写入持久数据。当我使用NUnit Gui运行单元测试时,测试失败,出现unauthorizedAccessException 文件试图读写的路径当然会受到程序执行位置的影响。这取决于我是在Visual Studio下运行NUnit还是直接从NUnit/bin文件夹运行NUnit,这是尝试执行读写操作的地方 我尝试以管理员身份运行NUnit,并将所有程序集直接复制到NUni

我正在对一个程序集进行单元测试,该程序集使用File.writeAllines()和File.ReadAllText()读取和写入持久数据。当我使用NUnit Gui运行单元测试时,测试失败,出现unauthorizedAccessException

文件试图读写的路径当然会受到程序执行位置的影响。这取决于我是在Visual Studio下运行NUnit还是直接从NUnit/bin文件夹运行NUnit,这是尝试执行读写操作的地方

我尝试以管理员身份运行NUnit,并将所有程序集直接复制到NUnit/bin文件夹,但测试仍然失败

我不想直接在程序集中设置路径

关于如何解决此问题,您有什么想法吗?

您可以使用它来获取一个临时文件以进行写入


或者,您可以使用查找程序集所在的位置,并将其用作目录。

对于NUnit 3,您应该使用TestContext获取或。
还有和,它可以帮助您以更可读的方式编写测试。

为什么不完全跳过框架测试,只验证使用预期参数值调用方法?一个好方法是使用memorystream并检查更改,因为它是一个真实的文件。因为您可能需要测试的是算法的逻辑,而不是保存文件的行为,我想?除非您必须测试某种文件锁定/共享机制,这是由您创建的,否则我想这将需要大量的断言…谢谢Jon,我们使用了Assembly.location。