diff --git a/tests/e2e/README.md b/tests/e2e/README.md index 776bdc428a..6e9e3c3fe3 100644 --- a/tests/e2e/README.md +++ b/tests/e2e/README.md @@ -1,7 +1,16 @@ ##E2E端到端测试流程 -1.运行E2E测试流程: -准备工作:make devstar 构建本地代码的devstar镜像,public/assets/install.sh start --image=devstar-studio:latest启动devstar容器 -请将devstar对应的url填写为TARGET_URL,执行make e2e-test TAGRET_URL="....",会自动化安装并测试,注意这里的url绝对不可以是localhost! -如果有已存在的实例需要测试,请额外在命令行输入E2E_USERNAME="my-admin" E2E_PASSWORD="my-pass" E2E_ADMIN_ID=""(后台管理可见,账号对应的id) make devstar TARGET_URL="...." -注意:make e2e-test命令会依赖make devstar创建容器,所以如果已经启动了devstar容器,请务必加上TARGET_URL参数 +``` + +make devstar + +public/assets/install.sh start --image=devstar-studio:latest + +make e2e-test TAGRET_URL="..." # 使用默认账号testuser 密码12345678 + +E2E_USERNAME="your_name" E2E_PASSWORD="your_password" E2E_ADMIN_ID="your_id" make e2e-test TAGRET_URL="..." # 使用你的账号和密码,id是后台管理账号对应的id +`` + + +##注意:Url不可以是localhost,这样容器无法访问,也无法正常安装webterminal + diff --git a/tests/e2e/global-setup.ts b/tests/e2e/global-setup.ts index 7bb126addb..df8468078a 100644 --- a/tests/e2e/global-setup.ts +++ b/tests/e2e/global-setup.ts @@ -17,8 +17,7 @@ async function globalSetup(config: FullConfig) { if (mode === 'url') { try { const url1=env.DEVSTAR_URL; - const url2 = `http://${url1}`; - await page.goto(url2, { timeout: 15000 }); + await page.goto(url1, { timeout: 15000 }); console.log('[GlobalSetup] 检测到安装界面!正在开始自动化安装...'); // (你提供的所有 "testuser" 安装步骤...) await page.getByText('Server and Third-Party Service Settings').click(); diff --git a/tests/e2e/specs/devcontainer.e2e.test.ts b/tests/e2e/specs/devcontainer.e2e.test.ts index 30459a38c7..3a50e1b744 100644 --- a/tests/e2e/specs/devcontainer.e2e.test.ts +++ b/tests/e2e/specs/devcontainer.e2e.test.ts @@ -9,8 +9,7 @@ const DEFAULT_E2E_PASS = '12345678'; const DEFAULT_ADMIN_ID = '1'; const isAlreadyInstalled = env.E2E_SKIP_INSTALL === 'true'; const url1=env.DEVSTAR_URL; -const url2 = `http://${url1}`; -const GITEA_URL = (env.E2E_MODE === 'url') ? url2 : 'http://devstar:3000'; +const GITEA_URL = (env.E2E_MODE === 'url') ? url1 : 'http://devstar:3000'; const TEST_USER = isAlreadyInstalled ? (env.E2E_USERNAME || DEFAULT_E2E_USER) : DEFAULT_E2E_USER; const TEST_PASS = isAlreadyInstalled ? (env.E2E_PASSWORD || DEFAULT_E2E_PASS) : DEFAULT_E2E_PASS; const TEST_ADMIN_USER_ID = isAlreadyInstalled ? (env.E2E_ADMIN_ID || DEFAULT_ADMIN_ID) : DEFAULT_ADMIN_ID; diff --git a/tests/e2e/specs/utils.e2e.ts b/tests/e2e/specs/utils.e2e.ts index 73bbd667bb..2f880cf539 100644 --- a/tests/e2e/specs/utils.e2e.ts +++ b/tests/e2e/specs/utils.e2e.ts @@ -14,7 +14,6 @@ let password: string | undefined; let wasUsingDefault = false; if(mode === 'url'){ const url1=env.DEVSTAR_URL; - const url2 = `http://${url1}`; if (isInstalled) { // 【"已安装" 模式 @@ -32,7 +31,7 @@ if(mode === 'url'){ console.log(` "刚安装"模式, 尝试用 ${username} 登录...`); } try { - await page.goto(url2 + '/user/login'); + await page.goto(url1 + '/user/login'); const captchaInput = page.locator('input[name="captcha"]'); if (await captchaInput.isVisible()) { throw new Error('检测到验证码 (CAPTCHA)! E2E 测试无法继续。'); @@ -40,7 +39,7 @@ if(mode === 'url'){ await page.fill('#user_name',username); await page.fill('#password', password); await page.getByRole('button', { name: 'Sign In' }).click(); - await expect(page).toHaveURL(url2 + '/'); + await expect(page).toHaveURL(url1+ '/'); console.log(`[LoginHelper] 用户 [${username}] 登录成功!`); } catch (error) { console.error(`[LoginHelper] 登录失败! 原始错误: ${error.message}`);