如何使用jest多次运行相同的测试

fiei3ece  于 2022-12-08  发布在  Jest
关注(0)|答案(3)|浏览(257)

我使用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();
});

我试图一次多次运行同一个测试,有没有办法开玩笑地使用它,或者使用其他工具。

2ledvvac

2ledvvac1#

如果您正在寻找一种可以对单个测试进行压力测试的方法(像我一样寻找测试的不稳定性),那么您可以在终端中使用下面的一行代码,当然它同时使用了bash和Jest。

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

此特定命令要求您安装npx,并且它使用--silent选项,但您可以根据需要更改它。

ymdaylpp

ymdaylpp2#

如果你不希望测试按顺序运行,你可以使用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);
})
vfwfrxfs

vfwfrxfs3#

npx一遍又一遍地安装软件包,我想看看我的改变是否提高了测试速度。

"jest": "jest <file_path> --silent"

然后从布雷迪那里借了剧本

for i in {1..100}; do yarn jest || (echo 'Failed after $i attempts' && break); done

我把它包在计时器里了,但这真的没必要。

相关问题