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

时间:2010-09-02 16:19:23

标签: c# unit-testing nunit

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

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

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

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

有关如何解决此问题的任何想法?

2 个答案:

答案 0 :(得分:3)

您可以使用Path.GetTempFileName来获取要写入的临时文件。

或者,您可以使用Assembly.Location找出程序集的位置,并将其用作目录。

答案 1 :(得分:2)

使用NUnit 3,您应该使用TestContext获取TestDirectoryWorkDirectory。 还有File AssertsDirectory Asserts,它们可以帮助您以更易读的方式编写测试。