我使用C#,VSTS2010,Nunit和.Resx文件作为数据源自动化Web应用程序。 能够从资源文件中成功选择数据。在生成结果时,在使用Assert.Pass(“”)时,如果通过则会使我失去循环。不知道如何产生结果和在哪里?请帮助我。
foreach (string from1 in from)
{
foreach (string to1 in To)
{
driver.Navigate().GoToUrl(www.xyz.com);
System.Threading.Thread.Sleep(5000);
driver.FindElement(By.Id("tbFrom")).Clear();
driver.FindElement(By.Id("tbFrom")).SendKeys(from1);
driver.FindElement(By.Id("tbTo")).Clear();
driver.FindElement(By.Id("tbTo")).SendKeys(to1);
if (driver.FindElement(By.Id("trAirLines")).Text.Contains("Air Canada"))
{
Assert.Pass("Air Canada Results are available")
}
else
{
Assert.Fail("AC not found")
}
}
当我删除Assert语句时,所有迭代都完成了,否则当它成为传递时它会失败
答案 0 :(得分:0)
您不得致电Assert.Pass()
。这将立即中止测试的执行。所以Assert.Fail()
会这样做。
我认为你可以相处的最好的事情是:
foreach (string from1 in from)
{
foreach (string to1 in To)
{
driver.Navigate().GoToUrl(www.xyz.com);
System.Threading.Thread.Sleep(5000);
driver.FindElement(By.Id("tbFrom")).Clear();
driver.FindElement(By.Id("tbFrom")).SendKeys(from1);
driver.FindElement(By.Id("tbTo")).Clear();
driver.FindElement(By.Id("tbTo")).SendKeys(to1);
var infoElement = driver.FindElement(By.Id("trAirLines"));
Assert.That(infoElement.Text, Is.StringContaining("Air Canada"));
}
}
Assert.That ... Is.StringContaining
检查引用元素的文本是否包含"Air Canada"
。现在,测试将在第一个不满足此断言的元素上失败 - 否则显然会通过。