La Storia:multiCapabilities e test di gelsomino focalizzato
Abbiamo una piuttosto grande prova di goniometro codebase end-to-end. Abbiamo due configurazioni: una è "locale" - per eseguire i test in Chrome e Firefox utilizzando directConnect
e l'altra è "remota" - per eseguire test su un server di selenio remoto - BrowserStack nel nostro caso.
La nostra configurazione "locale" è configurata per eseguire alcuni test in Chrome e alcuni in Firefox, perché in realtà non è possibile eseguire alcuni test in Chrome, ad esempio keyboard shortcuts don't work in Chrome+Mac. L'esecuzione dei test che richiedono l'utilizzo delle scorciatoie da tastiera in Firefox è una soluzione temporanea finché il problema chromedriver
collegato non viene risolto.
Ecco la parte rilevante della configurazione:
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
}
],
// ...
};
Il problema:
Ora, il problema è che, se sto debug di un singolo test, o vogliono eseguire un single test - Sto marcando è focalizzato (via fdescribe
/fit
) - ma il goniometro avvia due sessioni di driver: una per Chrome e l'altra per Firefox, utilizzando entrambe le funzionalità configurate:
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
...
La domanda:
C'è un modo per dire goniometro per utilizzare l'unica possibilità che ha configurato una specifica mirata?
Utilizzo attualmente aggiornato protractor
3.0.0.
auguriamo che la questione è chiara. Fammi sapere se hai bisogno di ulteriori informazioni.
non disponi di una risposta alla tua domanda, ma a me sembra ... non si può. La configurazione viene letta prima che i test inizino a essere eseguiti, quindi tutti i browser in 'multiCapabilities' inizieranno.Una soluzione dolorosa sarebbe quella di cambiare il "runner" o lo script di esecuzione per avere una configurazione diversa o per configurare dinamicamente la configurazione in base ai parametri della riga di comando. vale a dire. Non sta utilizzando la funzione incorporata degli strumenti/framework ma è possibile eseguirla con una configurazione diversa che non ha l'installazione di Chrome. – aneroid
@aneroid grazie per il punto. Sì, non è così chiaro come affrontare il problema..potrebbe essere necessario un parametro della riga di comando personalizzato separato che, a seconda del valore, eseguirà una delle funzionalità o tutte .. – alecxe
Tieni presente che puoi generare dinamicamente funzionalità con una funzione 'getMultiCapabilities' nel tuo' protractor.conf.js', se necessario – martin770