2017-05-04 18 views
1

複数のブラウザでテストを実行する方法を1つずつ見つけましたが、複数のブラウザでテストを並行して実行するためにセレングリッドを使用する方法が見つかりませんでした(C# )。 私が現在使用している何が:Visual Studioでのテストエクスプローラで複数のブラウザで同時にテストを実行

using NUnit.Framework; 
using OpenQA.Selenium; 
using OpenQA.Selenium.Firefox; 
using OpenQA.Selenium.IE; 
using System.Threading; 

namespace SeleniumTests 
{ 
[TestFixture(typeof(FirefoxDriver))] 
[TestFixture(typeof(InternetExplorerDriver))] 
public class TestWithMultipleBrowsers<TWebDriver> where TWebDriver : IWebDriver, new() 
{ 
    private IWebDriver driver; 

    [SetUp] 
    public void CreateDriver() { 
     this.driver = new TWebDriver(); 
    } 

    [Test] 
    public void GoogleTest() { 
     driver.Navigate().GoToUrl("http://www.google.com/"); 
     IWebElement query = driver.FindElement(By.Name("q")); 
     query.SendKeys("Bread" + Keys.Enter); 

     Thread.Sleep(2000); 

     Assert.AreEqual("bread - Google Search", driver.Title); 
     driver.Quit(); 
    } 
    } 
} 

Run Selenium tests in multiple browsers one after another from C# NUnit

答えて

2
  1. を行の左側にある円と3行を持っているボタンがあるはずですし、右側に矢印が表示されます(上にマウスを置くと 'Test Tests in Parallel'と表示されます)。これがチェックされていることを確認してください(バックグラウンドはテストエクスプローラパネルとは異なる色になります)。

  2. 各テストで並列にしたい場合は、属性Parallelizableを追加します。したがって、方法の上にある[Test]のようなものは[Test, Parallelizable]になります。

  3. 追加 - これはあなたには当てはまりませんが、いくつかの人に適用されるので追加します。あなたのドライバが(Singletonのような)静的インスタンスの場合は、[ThreadStatic]と注釈を付ける必要があります。そうしないと、同じドライバで異なるテストがすべて呼び出されます。

+0

ChromeとIEの両方でテストを実行するコードには、どのようなコードを挿入すればよいですか?上記の私の例と同じですか? –

+0

あなたはちょうど私が頭の上に残した髪@リチャード - 城を保存しました。提案3は私が探していたものでした。ありがとうございました! –

関連する問題