我有以下问题。我是 Jest 和 Puppetteer 的新手,我正在尝试精心制作的测试自动化套件。在这种情况下,我必须编译一个表单并检查我是否被重定向到特定页面。
我能够编译表单,但是当我尝试阅读页面标题以检查我是否正确重定向女巫“期望”时,尽管我尝试写入 console.log 并且它看起来正确,但测试总是失败。所以我尝试插入一个非常基本的 expect expect(1+1).toBe(2)
,但测试再次失败,所以我明白问题出在之前,但我找不到它。
这是代码:
const path = require('path');
describe('PM - onboarding Test', () => {
jest.setTimeout(30000);
const MOCK_ONBOARDING_EXPORT = process.env.MOCK_ONBOARDING_EXPORT;
const PSP = process.env.PSP;
const USER_TOKEN = process.env.USER_TOKEN;
beforeEach(async () => {
await page.goto(`file:${path.join(__dirname, MOCK_ONBOARDING_EXPORT)}`);
});
/**
* 1. START ONBOARDING
*/
it('start onboarding', async () => {
/* input psp */
const pspTextInput = "#inputIdPsp";
await page.waitForSelector(pspTextInput);
await page.click(pspTextInput);
await page.keyboard.type(PAYPAL_PSP);
/* input token */
const userTokenTextInput = "#inputSessionToken";
await page.waitForSelector(userTokenTextInput);
await page.click(userTokenTextInput);
await page.keyboard.type(USER_TOKEN);
/* click button*/
const onboardingButton = "#formOnboardingPaypalWebview > div:nth-child(5) > div > button";
await page.waitForSelector(onboardingButton);
await page.click(onboardingButton);
//await page.waitForNavigation();
await page.waitForSelector('#email');
await page.click('#email');
await page.keyboard.type("testtest@test.com");
let title = await page.title();
console.log(title);
//expect(title).toEqual('myTitle');
//await expect(title[0]).toMatch('mtTitle');
await expect(1 + 1).toBe(2);
});
});
这是我在终端中得到的:
console.log
YOUR TITLE PAGE
at Object.<anonymous> (src/second.test.js:43:17)
FAIL src/second.test.js (22.09 s)
PM - onboarding Test
× start onboarding (19154 ms)
● PM - onboarding Test › start onboarding
● PM - onboarding Test › start onboarding
● PM - onboarding Test › start onboarding
Test Suites: 1 failed, 1 total
Tests: 1 failed, 1 total
Snapshots: 0 total
Time: 22.736 s
Ran all test suites.
npm ERR! Test failed. See above for more details.
3 次失败和 1 次期望似乎也很奇怪......
希望有人能帮助我!❤</p>
PS:
- 我必须审查一些内容以保护隐私
- env 变量是用 dotenv 加载的
- 启动测试的脚本是
dotenv -e .env jest --detectOpenHandles --reporters=jest-junit
- 如果我删除所有测试代码并只留下期望,测试会正常