我正在尝试为在 c# 中使用 Selenium Webdriver 的测试创建自定义结果文件。
我正在将结果写入 csv 文件,并在最后关闭它。
问题是如果测试失败并且没有完成,文件永远不会关闭,因此我没有得到结果。
我试过把 file.Close(); 在 Teardown 部分中,但这不起作用,因为“文件”在该上下文中不存在。我看不出有办法把它传进去。
我还尝试在 Setup 中设置新的 StreamWriter 文件——这很好,但最后没有帮助关闭它。
我已经在这里搜索过和一般的谷歌搜索。
这是一个有效的示例 - 当它全部通过时(都在一个地方 - 测试中的不同类)。
我希望能够移动文件。关闭();不管它是否通过,它都会运行到哪里。
[TearDown]
public void TeardownTest()
{
try
{
driver.Quit();
}
catch (Exception)
{
// Ignore errors if unable to close the browser
}
Assert.AreEqual("", verificationErrors.ToString());
// file.Close();
// this is where it doesn't work if I put it here
}
[Test]
public void TheTest()
{
System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\results\test.csv", true);
try
{
Assert.AreEqual("text", "text");
file.WriteLine("{0},{1},{2}", "time", "test", "PASS");
}
catch (AssertionException e)
{
verificationErrors.Append(e.Message);
file.WriteLine("{0},{1},{2}", "time", "test", "FAIL");
}
//do next step
file.Close();
}