Reputation: 2464
I am unit testing an assembly that uses File.WriteAllLines() and File.ReadAllText() to read and write persistent data. When I run the unit test with the NUnit Gui the test fails with an unauthorizedAccessException.
The path that the file is attempting to read and write is being affected of course by the location of program execution. Depending on if I run NUnit under Visual Studio or directly from the Nunit /bin folder, this is where the attempted read and write operation is taking place.
I have tried to run NUnit as administrator and have copied all of the assemblies directly to the NUnit /bin folder and the test still fails.
I do not want to directly set a path in the assembly.
Any ideas on how to resolve this issue?
Upvotes: 4
Views: 3467
Reputation: 1286
With NUnit 3 you should use TestContext to get either TestDirectory or WorkDirectory. Also there are File Asserts and Directory Asserts, which may help you write your tests in a more readable way.
Upvotes: 4
Reputation: 1499740
You could use Path.GetTempFileName
to get a temporary file to write to.
Alternatively, you could use Assembly.Location
to find out where your assembly is, and use that as the directory.
Upvotes: 4