Я пытаюсь создать настраиваемый файл результатов для тестов с использованием Selenium Webdriver в C#.Как закрыть файл результатов при неудавшемся тесте? Использование Webdriver, C#
Я пишу результаты в файл csv и закрываю его в конце.
Проблема заключается в том, что если тест завершается с ошибкой и не завершается, файл никогда не закрывается, и поэтому я не получаю результаты.
Я пробовал положить файл.Close(); в разделе Teardown, но это не работает, потому что в этом контексте «файл» не существует. Я не вижу способа передать его.
Я также попытался настроить новый файл StreamWriter в Setup - это было прекрасно, но не помогло закрыть его в конце.
Я искал здесь и общий поиск по Google.
Вот пример того, что работает - когда все проходит (все в одном месте - разные классы в тесте).
Я хочу, чтобы иметь возможность перемещать файл.Close(); где он будет работать независимо от того, прошел он или нет.
[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();
}
Попробуйте объявить 'File' как общественности на' class' уровне, так что он будет доступен для всех методов вашего класса – Siva
Спасибо - что работал отлично! – Akcipitrokulo