2015-12-19 3 views
10

ストーリー:multiCapabilitiesとジャスミン集中テスト

我々はむしろ巨大なエンドツーエンドの分度器のテストコードベースを持っています。 ChromeとFirefoxでdirectConnectを使用してテストを実行する2つの設定があります。もう1つは遠隔セレンサーバ - ここではBrowserStackでテストを実行するための "リモート"です。

Chromeでいくつかのテストを実行するように設定されています(実際には、keyboard shortcuts don't work in Chrome+Macなど)。リンクされたchromedriverの問題が解決されるまで、Firefoxでキーボードショートカットを使用する必要があるテストを実行することは回避策です。ここで

は、コンフィギュレーションの関連部分である:

var firefox_only_specs = [ 
    "../specs/some_spec1.js", 
    "../specs/some_spec2.js", 
    "../specs/some_spec3.js" 
]; 

exports.config = { 
    directConnect: true, 

    multiCapabilities: [ 
     { 
      browserName: "chrome", 
      chromeOptions: { 
       args: ["incognito", "disable-extensions", "start-maximized"] 
      }, 
      specs: [ 
       "../specs/**/*.spec.js", 
       "../specs/**/**/*.spec.js", 
       "../specs/**/**/**/*.spec.js" 
      ], 
      exclude: firefox_only_specs 
     }, 
     { 
      browserName: "firefox", 
      specs: firefox_only_specs 
     } 
    ], 

    // ... 
}; 

問題:

さて、問題は、私は、単一のテストをデバッグしていた場合、実行したいか、ということです(fdescribe/fitを介して)集中しているとマークしていますが、分度器は2つのドライバセッションを開始します.1つはChrome用、もう1つはFirefox用で、両方の設定機能を使用します。

Running "protractor:local" (protractor) task 
[launcher] Running 2 instances of WebDriver 

... 
------------------------------------ 
[chrome #1] PID: 2329 
[chrome #1] Using ChromeDriver directly... 
[chrome #1] Spec started 

... 

------------------------------------ 
[firefox #2] PID: 2330 
[firefox #2] Using FirefoxDriver directly... 
[firefox #2] Spec started 

... 

質問:

がフォーカスされた仕様が設定した唯一の機能を使用するには、分度器を伝える方法はありますか?


現在使用中の最新protractor 3.0.0。

質問が明確であることを願っています。追加情報が必要な場合はお知らせください。

+0

あなたの質問には答えがありませんが、私にはそうは思われません...あなたはできません。テストが実行される前にconfigが読み込まれ、 'multiCapabilities'のすべてのブラウザが起動します。苦しい回避策は、「ランナー」または実行スクリプトを異なる設定に変更するか、コマンドラインパラメータに基づいて設定を動的に設定することです。すなわち、これは、ツール/フレームワークの組み込み機能を使用していないが、あなたはChromeの設定を持たないdiff設定で実行することができます。 – aneroid

+0

@aneroidこの点についてありがとうございます。そうですね、問題にアプローチする方法は明確ではありません。値に応じて、機能の1つまたはすべてを実行するカスタムのコマンドラインパラメータを個別に設定する必要があるかもしれません。 – alecxe

+0

必要であれば、 'protractor.conf.js'に' getMultiCapabilities'関数を使って動的に能力を生成することができます。 – martin770

答えて

1

あなたのようなit文ラップするために何かをすることができる場合、私は疑問に思う:私はなしてい

describe('when I do something', function() { 
    firefoxOnly('it should do the right thing', function() { 
     doSomething(); 
     expect(thing).toBe(right); 
    )}; 
}); 

:代わりにit使用の、あなたがテストを書くときに

onPrepare: function() { 
    browser.getCapabilities().then(function(caps) { 
     global.browserName = caps.caps_.browserName; 
    }); 

    global.firefoxOnly = function(name, testFunction) { 
     if (browserName === 'firefox') { 
      return it(name, testFunction); 
     } else { 
      return xit(name, testFunction).pend('firefox only'); 
     } 
    }; 
} 

をのようなものこれが実際に動作するかどうか、考えてください。実際に、テスト用のコンピュータに戻って試してみると、wipのような機能を追加してxitの代わりに自動的にATDDテストを保留することに興味があります。

0

分度器に焦点を絞った仕様が設定されている唯一の機能を使用するように指示する方法はありますか? relevant github issueによると

それはことはできません。

関連する問題