Assert.Pass让我失控。无法生成出来

时间:2014-02-05 04:43:23

标签: c# visual-studio-2010 nunit

我使用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语句时,所有迭代都完成了,否则当它成为传递时它会失败

1 个答案:

答案 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"。现在,测试将在第一个不满足此断言的元素上失败 - 否则显然会通过。