1

我在 .NET 环境中使用 Selenium WebDriver。我在 NUnit 测试运行器中使用 WebDriver,如下所示:

    [Test]
    public static void Should_register_user()
    {
        IWebDriver driver = new FirefoxDriver();

        ...

        driver.Quit();
    }

它工作得很好。如果我像这样从 MSBuild 脚本运行此测试: packages\NUnit.Runners.2.6.2\Tools\nunit-console.exe /nologo S022.SeleniumTests.dll /xml=NUnit.Report.xml (无论我是使用 NUnit 社区任务或执行任务)。测试执行但失败,Firefox 浏览器保持打开状态,脚本中的执行等待我关闭浏览器窗口。当我这样做时,脚本会进一步执行。

这是 Selenium 所说的:

ProcessModel: Default    DomainUsage: Single
  Execution Runtime: net-3.5
  .F
  Tests run: 1, Errors: 0, Failures: 1, Inconclusive: 0, Time: 10,3118323 secon
  ds
    Not run: 0, Invalid: 0, Ignored: 0, Skipped: 0

  Errors and Failures:
  1) Test Failure : S022.SeleniumTests.RegistrationTests.Should_register
  _user
       Expected string length 6 but was 11. Strings differ at index 0.
    Expected: "Log-in"
    But was:  "News"
    -----------^

  at S022.SeleniumTests.RegistrationTests.Should_register_user() in S022.SeleniumTests\T
  ests\RegistrationTests.cs:line 22

如果测试通过,则执行按预期进行。

我究竟做错了什么?

4

1 回答 1

4

您正在该[Test]方法中创建和销毁浏览器实例。当测试用例失败时,会引发异常,并且您的调用driver.Quit()永远不会被执行。您可能希望在方法中创建驱动程序实例,并在[SetUp]方法中调用。driver.Quit()[TearDown]

于 2013-04-08T13:57:10.663 回答