Как запустить класс бегунов TestCafe с помощью Docker - PullRequest
2 голосов
/ 26 октября 2019

Я новичок в TestCafe и хочу запустить мои тестовые сценарии с классом runner в контейнере Docker.

Я могу запустить один тестовый пример через Docker. Но когда я хочу бегать с классом бегунов, я не могу этого сделать. Я следовал за этой веткой https://github.com/DevExpress/testcafe/issues/2761, но я не знаю, как определить «Шаги инициализации среды из сценария TestCafe Docker в вашем бегуне.»

мой файл бегуна

const testCafe = require('testcafe');
const fs       = require('fs');

function runTest(tcOptions) {
  testCafe('localhost', 8080, 8081)
    .then(function(tc) {

      let runner = tc.createRunner();

      return runner
        .src(['./apps/tests/*.test.js'])
        .browsers(['firefox'])
        .concurrency(4)
        .reporter([
          'list',
          {
            name: 'html',
            output: './dist/testcafe/testCafe-report.html'
          }
        ])
        .screenshots('./dist/testcafe/testcafe-screenshots', true)
       .run(tcOptions)
        .catch(function(error) {
          console.log(error);
        });
    })
    .then(failedCount => {
      if (failedCount > 0) console.log('Error Tests failed: ' + failedCount);
      else console.log('All Desktop Tests Passed');
      process.exit(0);
    })

}

const tcOptions = {
  debugMode: false
};

runTest(tcOptions);

и выполнение этой команды Docker

docker run -v `pwd`/:/tests -e "NODE_PATH=/tests/node_modules" -it --entrypoint node testcafe/testcafe /tests/apps/testcafe//testcafe-desktop-run.js
{ Error: No tests to run. Either the test files contain no tests or the filter function is too restrictive.
    at Bootstrapper._getTests (/tests/node_modules/testcafe/src/runner/bootstrapper.js:92:19) code: 'E1009', data: [] }

1 Ответ

2 голосов
/ 31 октября 2019

Вам нужно указать полный путь к вашим тестовым файлам или изменить рабочий каталог на каталог /tests в контейнере.

Кроме того, этот шаг предназначен для запуска сервера отображения в памяти. Вы можете пропустить его, если собираетесь запускать тесты в браузере без монитора.

Вот команда, которая работает на моей стороне с классом Runner:

docker run -v //c/Users/User/test-docker:/tests -w=/tests -it --entrypoint node testcafe/testcafe /tests/test-run.js
...