Как запустить webdriverio синхронно в автономном режиме? - PullRequest
0 голосов
/ 07 марта 2019

Я делаю всплеск, чтобы посмотреть, могу ли я запустить wdio синхронно в автономном режиме.

const { remote } = require('webdriverio')
const Fiber = require('fibers')

Fiber(function () {
    const driver = remote(/* Excluded for brevity */)
    console.log('Before')
    driver.pause(10000)
    console.log('After')
    driver.deleteSession()
}).run()

При запуске я получил следующий журнал:

DEBUG @wdio/config: @wdio/sync not found, running tests asynchronous

Итак, яподумал, отлично, если я установлю @ wdio / sync, он будет автоматически выполняться в синхронном режиме.Однако после npm i -S @wdio/sync я все еще получаю тот же журнал, который для меня не имеет никакого смысла.

Я удалил node_modules и снова установил их, но та же проблема.Это мои зависимости от package.json:

"dependencies": {
    "@wdio/sync": "^5.7.1",
    "fibers": "^3.1.1",
    "webdriverio": "^5.7.1"
}

Я также дважды проверил, что версия fibers в @wdio/sync такая же.

В любом случае, как и следовало ожидатьdriver - это обещание, поэтому приведенный выше код завершается ошибкой со следующей ошибкой:

TypeError: driver.pause is not a function

Наконец, причина, по которой я это делаю, заключается в том, что я хочу отделить создание сеанса от теставыполнение, позволяя тестовым кейсам создавать и уничтожать сеансы по своему усмотрению, поддерживая синхронное выполнение.

ОБНОВЛЕНИЕ: После еще одного расследования я обнаружил, что причина, по которой он не смог импортировать @wdio/sync, заключается в следующем:

ERROR @wdio/config: Error: You can't reassign a plugin after appling another plugin
    at Object.apply (/project/node_modules/loglevel-plugin-prefix/lib/loglevel-plugin-prefix.js:49:13)
    at Object.<anonymous> (/project/node_modules/@wdio/sync/node_modules/@wdio/logger/build/node.js:116:31)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/project/node_modules/@wdio/sync/node_modules/@wdio/logger/build/index.js:20:10)

Я попытаюсь выяснить, чтоэта ошибка означает, и если я могу это исправить.Любая помощь будет оценена.

...