NUnit不会运行连续的Selenium Webdriver C#测试

Selenium Webdriver 2.48,C#,NUnit 2.6.4,Chrome驱动程序当我从NUnit测试运行器运行测试时,如果单独运行,它们都会通过。

如果我选择主标题节点并选择“运行”,则组中的第一个测试将运行,其余将失败。

如果在每次测试结束时让测试夹具[TearDown]关闭驱动程序,则会发生以下错误:“无效的操作异常:无此类会话”

如果我有测试夹具[TearDown]退出驱动程序,会发生以下错误:“意外的错误。System.Net.WebException:无法连接到远程服务器---> System.Net.Sockets.SocketException:没有连接可能因为目标机器在System.Net.ServicePoint.ConnectSocketInternal(布尔connectFailure,套接字s4,套接字s6,套接字和套接字)上主动拒绝它127.0.0.1:13806在System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot,SocketAddress套接字地址)套接字,IP地址和地址,ConnectSocketState状态,IAsyncResult asyncResult,异常和异常)“

使用driver.Quit()或driver.Close()对结果没有任何影响 - 只是运行组中的第一个测试。

我已经搜索,但无法找到解决方案。 必须能够从最顶层的节点运行所有测试,而不必单独选择每个测试并运行它们。 任何帮助,将不胜感激。 谢谢。 迈克尔

这是一个例子,在一个类中有两个测试。 我已经从测试中删除了大部分方法,因为它们很长。

using System.Collections.Generic;
using System.Linq;
using System.Text;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium;
using NUnit.Framework;
using SiteCore.HousingRepairsLogic;

namespace SiteCore.HousingRepairsTests.DoorsAndWindowsTests
{
[TestFixture]
class DoorsTests
{
    private IWebDriver driver = new     ChromeDriver(@"C:chromedriver_win32");

    [SetUp]
    public void setup()
    {
        HousingRepairsLogic.Utilities utilities = new Utilities(driver);
        utilities.NavigateToLogin();
    }

    [TearDown]

    public void teardown()
    {
        Utilities utilities = new Utilities(driver);
        utilities.CloseDriver();
    }


    [Test]

    public void LockRepair()
    {

        //Create Instance of the HomePage class
        HomePage homepage = new HomePage(driver);

        homepage.ClickHousingButton();
        homepage.RequestRepairButton();
        homepage.RequestRepairNowButton();
}
  [Test]

    public void ExternalWoodDoorFrameDamaged()
    {


        //Create Instance of the HomePage class
        HomePage homepage = new HomePage(driver);

        homepage.ClickHousingButton();
        homepage.RequestRepairButton();
        homepage.RequestRepairNowButton();

        //Create instance of TenancyPage class

        TenancyPage tenancy = new TenancyPage(driver);
        //proceed with login
        tenancy.ClickYesLoginButton();
        //enter username
        tenancy.EnterMyeAccountUserName();
        //enter password
        tenancy.EnterMyeAccountPassword();
        //click the login button
        tenancy.ClickLoginButton();
}
    }

声明时,您在灯具中初始化驱动程序一次:

私人IWebDriver驱动程序=新的C​​hromeDriver(@“C: chromedriver_win32”);

然后你的第一次测试运行,使用驱动程序和拆卸关闭它。 下一个测试不再使用该驱动程序。 您需要:在设置中重新初始化驱动程序,或者需要在夹具拆卸过程中关闭驱动程序。

如果您选择在setup / teardown中初始化并关闭,您将看到驱动程序为每个测试启动一个新的浏览器。 这将确保你的测试是独立于彼此的,但是它会花费更多的运行时间。

如果您想对所有测试重新使用browsersession:将初始化和关闭移动到TestFixture Setup和TestFixture Teardown方法。

链接地址: http://www.djcxy.com/p/63419.html

上一篇: NUnit will not run consecutive Selenium Webdriver C# tests

下一篇: Attempting to run multiple Selenium Webdriver tests using Nunit fails