私のクラス EDIDocument には、xml をロードするために使用される単純なメソッドがあります。
/// <summary>
/// Method used to load specific target file as template
/// </summary>
/// <param name="filepath">file path</param>
/// <returns>loading status</returns>
public bool Load(string filepath)
{
//file exists
bool returnValue = File.Exists(filepath);
//file is a xml
returnValue &= Path.GetExtension(filepath).Equals(".xml");
//if file is valid
if (returnValue)
{
XmlReader reader = XmlReader.Create(filepath);
//load document
this._xmldoc = XDocument.Load(reader);
//load complete
returnValue &= (this._xmldoc != null);
}
//End of method
return returnValue;
}
このメソッドの単体テストがあります:
/// <summary>
/// Test success on load xml document
/// </summary>
[TestMethod]
public void TestLoadXML_Success()
{
File.Create("xml.xml");
//create document
EDIDocument doc = new EDIDocument();
//load something wrong
bool result = doc.Load("xml.xml");
//test
Assert.IsTrue(result);
}
単体テストを開始すると、常に例外があります。
テスト メソッド EDIDocumentTest.TestLoadXML_Success が例外をスローしました: System.IO.IOException:別のプロセスによって使用されているため、プロセスはファイル 'C:......\Debug\xml.xml' にアクセスできません。
私はこの問題をグーグルで検索し、XmlReader、StreamReaderで複数のソリューションを試しました...常に同じ例外があります...
私の質問は次のとおりです。この例外を修正するには、メソッド Load をどうすればよいですか?
ありがとう