Reputation: 15477
I'm trying to test my logger and I'm trying to delete the log file after the integration test. But it is getting error saying
What do I have to do to release the file to be deleted.
file is in use
public void Logger_test()
{
//arrange
string fileName = "InventoryPassword1234.log";
Trace.Listeners.Add(new TextWriterTraceListener(fileName, "myListener"));
//act
Logger.Info("Hello World", "UnitTestProject1");
//assert
Trace.Flush();
Trace.Listeners.Remove("myListener");
Assert.IsTrue(File.Exists(fileName));
//cleanup
File.Delete(fileName);
}
Upvotes: 1
Views: 348
Reputation: 878
You can try in this way:
public static void Logger_test() {
//arrange
string fileName = "InventoryPassword1234.log";
TextWriterTraceListener myListener = new TextWriterTraceListener(fileName, "myListener");
Trace.Listeners.Add(myListener);
//act
Logger.Info("Hello World", "UnitTestProject1");
//assert
Trace.Flush();
Trace.Listeners.Remove("myListener");
myListener.Dispose();
Assert.IsTrue(File.Exists(fileName));
//cleanup
File.Delete(fileName);
}
I created the object of TextWriterTraceListener and then disposed it.
Upvotes: 3