I have an implementation of the listener interface and I want to save a screenshot of the web driver, as well as the xml of the test itself.
public class TestListener : ITestListener
{
public void TestFinished(ITestResult result)
{
try
{
string fileName;
if (!Directory.Exists("Logs")) Directory.CreateDirectory("Logs");
if (Directory.GetFiles(@"Logs\").Length == 0)
{
fileName = @"Logs\Log_0.xml";
}
else
{
fileName = @"Logs\Log_" + System.Convert.ToString(
Directory.GetFiles(@"Logs\").Select(item => System.Convert.ToInt32(item.Split('_')[1]))
.OrderByDescending(item => item).First() + 1) + ".xml";
}
using (StreamWriter fstream = new StreamWriter(fileName))
{
fstream.Write(result.ToXml(true).OuterXml);
}
}
catch {}
if (result.ResultState.Status == TestStatus.Failed)
{
try
{
Screenshot screenshot = ((ITakesScreenshot)Driver.DriverInstance.GetInstance()).GetScreenshot();
if (!Directory.Exists("Screenshots")) Directory.CreateDirectory("Screenshots");
if (Directory.GetFiles(@"Screenshots\").Length == 0)
screenshot.SaveAsFile(@"Screenshots\Screen_0.jpg");
else
{
string fileName = @"Screenshots\Screen_" + System.Convert.ToString(
Directory.GetFiles(@"Screenshots\").Select(item => System.Convert.ToInt32(item.Split('_')[1]))
.OrderByDescending(item => item).First() + 1) + ".jpg";
screenshot.SaveAsFile(fileName);
}
}
catch {}
}
}
....
}
and I run a illustration test to show to see that it works
[Test]
public void test()
{
Assert.IsTrue(false);
}
but don't push a event for listener. NUnit v3.12.0