如果Assert.AreEqual失败,如何截图?如何使用Assert.AreEqual设置if条件

本文关键字:AreEqual Assert 设置 if 条件 何使用 何截图 失败 如果 | 更新日期: 2023-09-27 17:59:28

我正在尝试拍摄C#硒中失败测试用例的屏幕截图。

但是我不知道如何将if条件与Assert.AreEqual一起使用。

我也尝试过使用if(Assert.Equals == false),但不起作用。

有人能帮忙吗??

如果Assert.AreEqual失败,如何截图?如何使用Assert.AreEqual设置if条件

实际上,"Asset.AreEqual"接受三个参数1.布尔中的预期结果2.布尔中的原始结果3.错误消息

如果预期的和原始的不匹配,它会抛出一个错误,对于屏幕截图,你需要使用try-catch,我很久以前就用过了。

public void AreEqual(需要布尔,布尔结果,字符串comment=",字符串pictureName="){尝试{Assert.AreEqual(预期,结果,注释);

        }
        catch
        {
            /// will capture a screenshot of errors
            if (string.IsNullOrEmpty(pictureName) && !string.IsNullOrEmpty(comment))
            {
                int length = comment.Replace(" ", string.Empty).Length;
                if (length > 30)
                    length = 30;
                pictureName = comment.Replace(" ", string.Empty).Substring(0, length);
            }
            pictureName = (pictureName == "" ? Guid.NewGuid().ToString() : pictureName);
            GetScreenShot(pictureName);
     // Getscreenshot function capture image for me u need to put your code here(before throw)     
            throw;
        }
    }

查看更多实际测试会有所帮助,但由于Assert.Equals不返回值,因此可以将其分解为多个步骤。

例如,如果你有这个:

Assert.AreEqual(value1, value2);

然后你可以用这个来代替它:

var areValuesEqual = (value1 == value2);
Assert.IsTrue(areValuesEqual);
if (!areValuesEqual)
{
    // rest of testing logic
}