按Jest顺序运行Puppeteer测试

时间:2019-01-31 22:45:11

标签: javascript testing jestjs puppeteer

我正在使用Jest Puppeteer,并且遇到一种情况,我想先运行登录测试(为身份验证设置cookie / localStorage),然后再运行其他测试,但是,我知道Jest不会这样工作-当它搜索本地文件系统并根据文件名中的模式运行测试时,它们的运行顺序是不同的。

由于要依靠其他测试来设置身份验证会话,因此我不确定自己是否会以正确的方式进行操作。

是否可以执行上述操作?还是需要重新考虑自己的方法?

1 个答案:

答案 0 :(得分:1)

这不是一个及时的答案。我有类似的问题。我可以通过嵌套描述块按顺序运行测试,如下所示。我的测试在我需要的单独文件中。

const puppeteer = require('puppeteer');
const login = require('./login');
const upload = require('./upload');
let browser;

beforeAll(async () => {
    browser = await puppeteer.launch({
        headless: false,
        devtools: true,
        slowMo: 50
    });

})
describe('test suite', () => {
    describe('login', () => {

        test('url is correct', async () => {

            const url = await login();
            expect(url).toBe('https://uat2.onplanapp.com/#/');


        }, 25000);

    });
    describe('upload', () => {


        test('file upload ok', async () => {
            url = await upload();
            console.log('page.url');

            expect(url).toBe('https://uat2.onplanapp.com/#/moduleLibrary');
            //expect(url).toBe('https://uat2.onplanapp.com/#/uploadFile');

        }, 10000);

    });
    afterAll(async done => {
        console.log('GOT TO AFTER ALL');
        browser.close()
        done();
    });

});