TestCafe Docker: получение ошибки из-за ReactSelector - PullRequest
0 голосов
/ 05 ноября 2019

Я использую модифицированный образ DoC TestCafe, добавив к нему установку testcafe-react-selector. Когда я запускаю тесты, я получаю следующую ошибку:

1) Action "selector" argument error:

  Selector is expected to be initialized with a function, CSS selector
  string, another Selector, node snapshot or a Promise returned by a
  Selector, but object was passed.

  Browser: Chrome 77.0.3865 / Linux 0.0.0

     119 |});
     120 |
     121 |test('Verify Project breakdown', async (t) => {
     122 |  await t
     123 |
  .click(accountManager.selectTestAccount('testaccount'))
   > 124 |    .click(homePage.dashboard)

Мой тест:

    test('Verify Project breakdown', async (t) => {
  await t
    .click(accountManager.selectTestAccount('testaccount'))
    .click(homePage.dashboardIcon)

// homepage.js
this.dashboardIcon = ReactSelector('DashboardIcon');

Если я изменю вышеуказанный элемент с ReactSelector на Selector, тогда он будет работать дляя в среде докера.

Я могу выполнить тот же тест с ReactSelector, если я делаю это в локальной среде (где TestCafe, Testcafe-реагировать-селекторы). Я не уверен, почему это не нравится ReactSelector. Я использовал его во многих местах, поэтому я не хочу менять свои локаторы элементов на Selector.

Также я получаю сообщение об ошибке для прибора, в котором оно установлено так:

.beforeEach(async (t) => {
await waitForReact();

Ошибка после запуска тестов:

- Error in fixture.beforeEach hook -
  ClientFunction cannot implicitly resolve the test run in context of
  which it should be executed. If you need to call ClientFunction from
  the Node.js API callback, pass the test controller manually via
  ClientFunction's `.with({ boundTestRun: t })` method first. Note
  that you cannot execute ClientFunction outside the test code.

  Browser: Chrome 77.0.3865 / Linux 0.0.0
  Screenshot:

Образ док-станции TestCafe:

FROM testcafe/testcafe
# See https://github.com/DevExpress/testcafe/tree/master/docker

# We need root privileages to install new deps:
USER root

# Without this line `testcafe` and `testcafe-*-selectors` are not found:
ENV NODE_PATH=/opt:/usr/lib/node_modules:/opt/testcafe/node_modules

# Installing custom dependencies:
RUN cd /opt/testcafe && npm install \
    testcafe-react-selectors testcafe-reporter-html testcafe-reporter-xunit
...