Playwright UI Mode导入本地辅助文件后无法识别测试的问题
问题解答
1. 这是代码问题还是Playwright UI Mode的限制?
这是代码问题,并非Playwright UI Mode的限制。
2. 需要如何修改才能实现从其他文件导入函数?
修改辅助文件Login.js
你的Login.js是纯工具函数文件,不需要导入Playwright的test和expect模块——多余的导入会让Playwright错误地将它识别为测试文件,但该文件内没有实际测试用例,进而干扰了对目标测试文件的解析。修改后的代码如下:
async function Login_user_foo(page) { await page.goto('<our-qa-stage>'); await page.getByLabel('Remember me').check(); await page.getByLabel('Password').fill('<our-password>'); await page.getByRole('button', { name: 'Log In to Sandbox' }).click(); } export {Login_user_foo};
确认测试文件的写法
确保你的测试文件(tests/my_new_test.spec.js)正确导入函数并定义测试用例,示例如下:
import { test, expect } from '@playwright/test'; import { Login_user_foo } from '../commons/Login'; // 必须定义实际的测试用例,Playwright才能识别到可执行测试 test('登录功能验证', async ({ page }) => { await Login_user_foo(page); // 可添加登录后的断言逻辑,比如验证页面跳转 await expect(page).toHaveURL('/目标页面路径'); });
收尾验证
- 如果你的环境不支持省略
.js扩展名,可将导入路径改为../commons/Login.js - 重新执行启动命令:
npx playwright test --ui tests/my_new_test.spec.js
问题根源
原辅助文件中多余的test模块导入,触发了Playwright的测试文件扫描逻辑,导致工具文件被误判为测试文件,同时干扰了真实测试文件的识别。移除该导入后,Playwright就能正常解析测试文件中的导入和测试用例。
内容的提问来源于stack exchange,提问作者surfmuggle
相关产品推荐
相关产品推荐

