Testcafe - Как запустить код после запуска всех приборов - PullRequest
0 голосов
/ 13 ноября 2018

Я хочу создать снимок БД сервера SQL, а затем восстановить его после запуска «всех приборов».

Я могу сделать это после каждого приспособления через .after зацепить приспособление.Однако это вызывает проблемы при выполнении тестов, так как после восстановления БД все еще находится в переходном состоянии.Поэтому я бы предпочел сделать это после всех матчей.

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Вы также можете использовать интерфейс программирования TestCafe API. TestCafe Класс Runner возвращает объект Promise. Вы можете использовать этот объект для запуска собственного кода очистки после завершения всех тестов / приспособлений.

Вот пример:

const createTestCafe = require('testcafe');
let testcafe         = null;

createTestCafe('localhost', 1337, 1338)
    .then(tc => {
        testcafe     = tc;
        const runner = testcafe.createRunner();

        return runner
            .src(['tests/fixture1.js', 'tests/fixture2.js', 'tests/fixture3.js'])
            .browsers(['chrome', 'safari'])
            .run();
    })
    .then(failedCount => {
        // Clean up your database here...
        testcafe.close();
    });
0 голосов
/ 13 ноября 2018

Я нашел обходной путь на данный момент.Обходной путь:

  1. Добавить зависимость для ts-узла.Мне также пришлось добавить tsconfig.json со свойством lib параметров компилятора, установленным в es2015 и dom.Если нет, то он жаловался на Promise.
  2. Я создал файл с именем create-snapshot и создал там снимок.
  3. Я создал другой файл с именем restore-snapshot и восстановил снимок в этом файле..
  4. Я добавил две записи в сценарии package.json, такие как "create-ss": "ts-node ./create-snapshot.ts", "restore-ss": "ts-node ./restore-snapshot.ts"
  5. Теперь из Powershell я запускаю тесты с помощью команды: npm run create-ss;npm run test-chrome-hl;npm run restore-ss.Это запускает команды последовательно в Powershell.В других терминалах вам может потребоваться использовать && или что-то еще вместо;.

Я могу избежать "npm run create-ss", используя крючок .before устройства, отслеживая переменную, чтобы убедиться, что она запускается только один раз.Однако я не могу сделать подобный подход, когда последний тест выполняется.

Трудно запомнить эти три команды, но я пока не вижу другого пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...