2017-01-10 10 views
2

2ノードを持つセレングリッド(selenium-server-standalone-2.53.0.jar)と組み合わせてNUnit 3.5を使用しています(1ノードはハブ)。テストを並行して実行できません(Selenium grid + NUnit)

グリッド上で順番にテストを実行すると、正常に動作します。同時に複数の順次テストスイートを実行する(つまり、2つの別々のテストプロジェクトを実行すると、ハブはそれぞれ1つのハブにテストを配布する)もうまく機能します。

私が働くことができないのは、同じプロジェクトから複数のテストクラスを並行して実行していることです。私がしようとしているのは、いくつかのテストクラス(複数のテストを含む)を互いに並行して実行することです。基本的に、2つ(またはそれ以上)のテストクラスは次のようになります。

[Parallelizable(ParallelScope.Fixtures)] 
public class Search { 

    [Test] 
    public void TestSomething() { 
     //Test here 
    } 

    [Test] 
    public void TestSomethingElse() { 
     //Test something else here 
    } 

テストは並行して実行されるのではなく、本当に奇妙な結果になります。彼らは並行して実行されているように見えますが、テスト/セッションは混在しているようです。たとえば、あるテストのログ出力(Console.WriteLine)が別のテストの出力に表示されます。そのため、渡されたテストでは、失敗したというログ出力が出る可能性があります(失敗したテストのログを出力するため)。

ハブの設定:デフォルトと同じですが、ポート8887

ノード設定使用:

{ 
    "capabilities": [ 
    { 
     "browserName": "firefox", 
     "maxInstances": 5, 
     "cleanSession": true 
    }, 
    { 
     "browserName": "chrome", 
     "maxInstances": 5 
    }, 
    { 
     "browserName": "internet explorer", 
     "maxInstances": 1 
    } 
    ], 
    "configuration": { 
    "_comment" : "Configuration for Node", 
    "cleanUpCycle": 2000, 
    "timeout": 10000, 
    "port": 5555, 
    "host": "sto-selenium02", 
    "register": true, 
    "hubPort": 8887, 
    "maxSessions": 3 
    } 
} 

することは私はここで何をしないのですか?どのようにセッション/テストが混在することができますか?すべての助けに感謝!

答えて

2

私は同じ問題に遭遇し、WebDriverインスタンスが静的変数としてコード化されていることが判明しました。それがなくなると、テストは並行して実行できます。

希望に役立ちます!

+0

これは実際の問題であったことが分かりました。グリッド構成とは何の関係もありませんでした。非静的なwebdriverを使用すると、グリッドは期待どおりに動作します。ありがとう! –

関連する問題