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

Я использую jest для запуска моего набора тестов (с бэкэндом как Node.js & express).Ниже приведен мой код:

Const puppeteer = require ('puppeteer');

Test ('testing login function', async () => {
    const browser = await puppeteer.launch ({  
        headless: true,
        args: ['--no-sandbox']
  });

    const page = await browser.newPage();

    await page.type('#username', 'admin');
    await page.type('#password', 'password');

    await page.click('login-button');

    await page.waitFor('.card');

    expect(texthead).toEqual('Welcome to webpage');

    await browser.close();
});

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

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Если вы ищете что-то, что будет по существу подвергать стресс-тесту один тест (ищите тестовую нестабильность, как у меня), то вы можете использовать следующую однострочную строку в своем терминале, которая, конечно, использует вместе bash и Jest.

for i in {1..100}; do npx jest <test_file> --silent || (echo 'Failed after $i attempts' && break); done

Эта конкретная команда требует, чтобы у вас была установлена ​​npx, и она использует опцию --silent, но вы можете изменить ее по своему усмотрению.

0 голосов
/ 13 сентября 2018

Если вы не хотите, чтобы тесты выполнялись последовательно, вы можете использовать Promise.all. Вот краткий пример того, как вы могли бы реорганизовать свой код.

const runTheTest = async () => { 
  const browser = await puppeteer.launch ({
    headless: true, args: ['--no-sandbox'] 
  });
  .......
  return browser.close();
}

test('testing login function', async () => { 
  const testRuns = []
  for (let index = 0; index < NUMBER_OF_RUNS; index++) {
    testRuns.push(runTheTest())
  }
  return Promise.all(testRuns);
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...