0

私はしばらくの間この問題の良い解決策を見つけようとしてきましたが、まだ強力な解決策を思い付いていません。WebDriverとC#を使用してテストスイートを作成し、サイトに対してテストスイートを実行しました。私の唯一の残りの問題は、FireFox、Chrome、IEで完全なスイートを実行する方法を見つけたいということです。つまり、基本的には、FireFoxでテストを完了し、次にChromeで完了し、最後にIEで完了する必要があります。

私はSeleniumGridを調査し、現在それを稼働させることに取り組んでいますが、使用する仮想マシンがないため、あらゆる種類の問題に直面しています。ローカルで実行する必要があります。したがって、この質問の一部が不可能な場合、または適切な解決策ではない場合、誰かが私のローカルの3つのメインブラウザで実行するようにSeleniumグリッドを設定する方法を教えてもらえますか?私が見つけたすべてのドキュメントには、仮想マシンのセットアップが必要です。

4

1 に答える 1

1

NUnitのパラメーター化されたテストを使用しました。

列挙型を作成しました:

/// <summary>
/// Enum that holds references to different browsers used in testing.
/// </summary>
public enum BrowserTypeEnum
{
    /// <summary>
    /// Google Chrome.
    /// </summary>
    Chrome, 

    /// <summary>
    /// Mozilla Firefox.
    /// </summary>
    Firefox, 

    /// <summary>
    /// Internet Explorer.
    /// </summary>
    InternetExplorer
}

次のようにTestFixtureでそれを呼び出しました:

/// <summary>
/// Tests related to browsing Google
/// </summary>
[TestFixture(BrowserTypeEnum.Chrome)]
[TestFixture(BrowserTypeEnum.Firefox)]
public class GoogleTests : AbstractTestFixture
{
}

AbstractTestFixtureの場合:

    /// <summary>
    /// Create's the browser used for this test fixture. 
    /// <para>
    /// Must always be called as part of the test fixture set up, not the base test fixtures.
    /// </para>
    /// <para>
    /// It is the actual test fixture's responsibility to launch the browser.
    /// </para>
    /// </summary>
    protected override void CreateBrowser()
    {
        switch (BrowserType)
        {
            case BrowserTypeEnum.Chrome:
                Browser = new ChromeDriver();
                break;
            case BrowserTypeEnum.Firefox:
                Browser = new FirefoxDriver();
                break;
            case BrowserTypeEnum.InternetExplorer:
                Browser = new IEDriver();
                break;
            default:
                break;
        }
    }

最善の解決策ではないかもしれませんが、私はそれがかなり読みやすいと思いました。別の方法は、Selenium Gridのようなものを使用するか、ドライバーのタイプをNUnitに渡して、次のように直接作成することです。

/// <summary>
/// Tests related to browsing Google
/// </summary>
[TestFixture(typeof(FirefoxDriver))]
public class GoogleTests : AbstractTestFixture
{
}

もう1つの方法は、CIサーバーソリューションを使用する場合、テストに使用するブラウザーを示す構成設定を作成することです。CIドライバーにテストを3回繰り返してもらい、そのたびにその構成設定を編集します。

于 2012-08-29T12:06:10.143 に答える