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 コミュニティ タスクまたは exec タスクを使用します)。テストは実行されますが、失敗します。Firefox ブラウザーは開いたままになり、スクリプトでの実行はブラウザー ウィンドウを閉じるまで待機します。これを行うと、スクリプトがさらに実行されます。

これがセレンの言うことです:

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 に答える