2015-01-30 8 views

Odpowiedz

4

Jest kilka rzeczy, które możesz wypróbować.

How can I use command line arguments in Angularjs Protractor? wyjaśnia, w jaki sposób przekazać w zmiennej „params”, które jeśli były całkowicie pro można odwoływać się później w pliku konfiguracyjnym, z sekcji multiCapabilities (może używać funkcji pomocnika lub if, więc nie trzeba przekazać obiekt złożony z wiersza poleceń). Nie jest to łatwe, ale możliwe.

https://sourcegraph.com/github.com/teerapap/grunt-protractor-runner (patrz sekcja Opcje) to narzędzie, które pozwala bez problemu przenieść te rzeczy z wiersza poleceń. Jest to open-source i wydaje się, że łatwo byłoby go zmodyfikować, jeśli nie spełnia on twoich potrzeb.

Najprostszą opcją, zakładając, że potrzebujesz tylko kilku różnych opcji, byłoby po prostu użycie dwóch różnych plików konfiguracyjnych: "protractor.chrome.conf.js" i "protractor.firefox.conf.js" i uruchomienie dowolnej opcji jeden, którego potrzebujesz w tej chwili.

21

Konkretnym przykładem Isaac Lyman pierwszego sugestia:

CLI:

protractor ... --params.browsers="chrome,firefox" 

conf.js:

var capabilities = { 
    chrome: { 
    browserName: 'chrome' 
    }, 

    firefox: { 
    browserName: 'firefox' 
    } 
}; 

... 

getMultiCapabilities: function() { 
    var browsers = this.params.browsers.split(','); 

    // Using lodash to select the keys in `capabilities` corresponding 
    // to the browsers param. 
    return _(capabilities) 
    .pick(browsers) 
    .values() 
    .value(); 
}, 
+0

Nie mogę uwierzyć, że nie dostał żadnych upvotes dla jest to doskonałe rozwiązanie, które działa z obecnymi ograniczeniami Protractor. Należy wspomnieć, że ludzie będą musieli "npm install --save-dev lodash" z linii poleceń, aby dodać lodash do ich node_modules i "var _ = require (" lodash ");" zaimportować bibliotekę. –

Powiązane problemy