3

C#で記述されたさまざまなブラウザー(IE6、7、8、FF 3.5.6)を備えたSelenium GRIDセットアップがあり、個別に正常に動作します。また、Selenium Tests セットアップのセットもあり、それらは私が渡す環境でも正常に動作します。私が求めているのは、Selenium GRID で利用可能なすべてのブラウザーを循環するように異なる単体テストをプログラム的に設定する方法です。

ブラウザの数はそれほど多くないので、ブラウザのリストや配列などは問題ありませんが、ブラウザを介してセットアップとティアダウンを循環させる方法がわかりません。Selenium Grid と 3 つの Selenium RC を接続した NUnit で C# を使用しています。

ブラウザを循環できるのであれば、MbUnit のようなものに変更してもかまいません。

どうもありがとう

4

3 に答える 3

0

を使用している場合は、属性を変数にMbUnitバインドできます。Factory次に、Data Factory自動化するブラウザの種類ごとに1回ずつ戻ります。ブラウザごとに1回テストを実行します。

http://www.gallio.org/wiki/doku.php?id=mbunit:da​​ta-driven_testing:factory

于 2012-03-30T20:21:26.647 に答える
0

1 つの (かなり醜い) オプションは、ターゲット ブラウザーで渡されるテスト メソッドで RowTest 拡張機能を使用することです。実際のテスト メソッドをセットアップで汚染し、おそらくテスト スイート全体の速度を低下させます。

于 2011-03-11T17:41:25.780 に答える
0

NUnit を使用する場合は、基本テスト クラスで必要なすべてのブラウザーでパラメーター化された TextFixturesを指定できます。

namespace Tests
{
    [TestFixture("*firefox")]
    [TestFixture("*iexplore")]
    public abstract class Test
    {
        private static string _browser;

        protected Test()
        {
        }

        protected Test(string browser)
        {
            SetBrowser(browser);
        }        

        public static void SetBrowser(string browser)
        {
            _browser = browser;
        }

        [SetUp]
        public virtual void Setup()
        {
            Selenium = new DefaultSelenium(localhost, 5555, _browser, "http://www.google.com/");
            Selenium.Start();
        }

        [TearDown]
        public virtual void TearDown()
        {
            Selenium.Stop();
        }
    }
}

テスト自体は次のようになります。

namespace Tests
{
    [TestFixture]
    public class Test1 : Test
    {
        public Test1(string browser)
        {
            SetBrowser(browser);
        }

        [Test]
        public void FirstTest()
        {
            ...
        }
   }
}

2) PNunit経由でブラウザを指定できます。短所: 各テストは test.conf ファイルに記載する必要があります。長所: 指定されたすべてのブラウザーが並行して実行されます。2 つのブラウザーに対して 1 つのテストが指定された test.conf ファイルの例:

<TestGroup>
  <ParallelTests>  
    <ParallelTest>
      <Name>Tests</Name>
        <Tests>

          <TestConf>
            <Name>Test1FF</Name>
            <Assembly>Test.dll</Assembly>
            <TestToRun>Test.Tests.Test1</TestToRun>
            <Machine>localhost:8080</Machine>
            <TestParams>
              <string>*firefox</string>
            </TestParams>
          </TestConf>

          <TestConf>
            <Name>Test1IE</Name>
            <Assembly>Test.dll</Assembly>
            <TestToRun>Test.Tests.Test1</TestToRun>
            <Machine>localhost:8080</Machine>
            <TestParams>
              <string>*iexplore</string>
            </TestParams>
          </TestConf>

        </Tests>
      </ParallelTest>
    </ParallelTests>
</TestGroup>

そして、基本テストクラスは次のようになります。

using NUnit.Framework;
using PNUnit.Framework;

namespace Tests
{
    [TestFixture]
    public class Test
    {
        private string browser;

        protected Test()
        {
        }     

        [SetUp]
        public virtual void Setup()
        {
            browser = PNUnitServices.Get().GetTestParams();
            Selenium = new DefaultSelenium(localhost, 5555, browser, "http://www.google.com/");
            Selenium.Start();
        }

        [TearDown]
        public virtual void TearDown()
        {
            Selenium.Stop();
        }
    }
}

3) app.config でブラウザーを指定し、TeamCity 経由で変更できます。このソリューションを調査しなかったため、例を挙げられません。最初の 2 つのソリューションが役立つことを願っています。

于 2012-03-30T22:29:38.383 に答える