无法检测到失败的测试用例
本文关键字:测试用例 失败 检测 | 更新日期: 2023-09-27 18:34:02
我正在创建一个通过Selenium和nunit运行的测试用例。在运行我的测试用例时,如果测试用例通过,那么图像应该移动到 Pass 文件夹以失败,那么在文本上下文的帮助下,我的屏幕最后会变得尖叫。但究竟发生了什么,它只检测通过的测试用例,这是我的代码片段中的其他语句。我缺少什么,因为它没有检测到失败的测试测试状态
[Test]
public void TestCase_55215()
{
... Specific TestCase Function
string Name = methodBase.Name;
GetResult(Name); // Moves all screenshot to specific folder (Pass or Fail Folder) after running the test case function test on nunit
}
public void GetResult(string testName)
{
if (TestContext.CurrentContext.Result.Status == TestStatus.Failed)
{
string sourcepath = @"source";
string destpath = (@"Destination'" + TestCase - " + testName);
Directory.CreateDirectory(destpath);
string[] files = System.IO.Directory.GetFiles((sourcepath), "*.png");
Parallel.ForEach(files, file =>
{
System.IO.File.Move(file, System.IO.Path.Combine(destpath, System.IO.Path.GetFileName(file)));
});
}
else
{
string sourcepath = @"sourcepath";
string destpath = @"Destination";
Directory.CreateDirectory(destpath);
string[] files = System.IO.Directory.GetFiles((sourcepath), "*.png");
Parallel.ForEach(files, file =>
{
System.IO.File.Move(file, System.IO.Path.Combine(destpath, System.IO.Path.GetFileName(file)));
});
}
根据我的代码,
预期结果:应将图像移动到"失败"文件夹
实际结果:屏幕截图图像保存在父文件夹而不是文件夹名称中。
NUnit 在测试完成后在上下文中设置结果。您对 GetResult 的调用是测试的一部分。在这一点上,由于它还没有完成,所以没有有意义的结果。
如果要以有用的方式访问结果,请使用拆解方法。
您必须从 NUnit 捕获异常。请参阅下面的代码:
string Name = methodBase.Name;
try
{
// Specific TestCase Function
Assert.Fail("This is a fail test");
}
catch (SuccessException ex)
{
// Test passed
GetResult(Name);
}
catch (AssertionException exception)
{
// Test failed
GetResult(Name);
}
catch (Exception exception)
{
// Test Inconclusive or Error occurs
GetResult(Name);
}
如果它只检测到其他部分,则意味着Result.Status
始终处于假...在调用方法之前,请仔细检查设置的位置。