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

时间:2015-06-25 05:20:30

标签: c# selenium

我试图在C#selenium中截取失败的测试用例的截图。

但我不知道如果使用条件Assert.AreEqual

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

有人可以帮忙吗??

2 个答案:

答案 0 :(得分:1)

实际上,“Asset.AreEqual”接受三个参数 1. bool的预期结果 2. bool的原始结果 3.错误消息

如果预期和原始不匹配则会产生错误,对于截图,您需要使用try-catch,我很久以前就已经使用过了。

public void AreEqual(bool expected,bool result,string comment =“”,string 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;
        }
    }

答案 1 :(得分:0)

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

例如,如果你有这个:

Assert.AreEqual(value1, value2);

然后你可以用它替换它:

var areValuesEqual = (value1 == value2);

Assert.IsTrue(areValuesEqual);

if (!areValuesEqual)
{
    // rest of testing logic
}