new
This commit is contained in:
13
.env.e2e
Normal file
13
.env.e2e
Normal file
@@ -0,0 +1,13 @@
|
||||
export GITEA_URL="http://192.168.181.128:3000"
|
||||
|
||||
export TEST_USER="jiaojunming"
|
||||
export TEST_PASS="hwyhwy12"
|
||||
|
||||
export TEST_REPO_VALID="jiaojunming/test1"
|
||||
export TEST_REPO_EMPTY="jiaojunming/test2"
|
||||
export TEST_REPO_INVALID="jiaojunming/test3"
|
||||
|
||||
export TEST_USER_ADMIN="jiaojunming"
|
||||
export TEST_PASS_ADMIN="hwyhwy12"
|
||||
export TEST_ADMIN_USER_ID="1"
|
||||
export TEST_REPO_ADMIN="jiaojunming/test1"
|
||||
9
tests/README.md
Normal file
9
tests/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
使用PLAYWRIGHT测试框架执行test/e2e下的自动测试脚本
|
||||
|
||||
1.在custom/conf下的app.ini中关闭验证码:ENABLE_CAPTCHA = false
|
||||
2.在执行脚本前请下载相关依赖:npx playwright install
|
||||
3.请在.env.e2e文件中配置相关项:
|
||||
GITEA_URL:devstar实例的url,TEST_USER:测试用户,TEST_REPO_VALID:一个干净的,有合理json配置的仓库,TEST_USER_ADMIN:管理员账号(可以是测试用户),TEST_ADMIN_USER_ID:管理员用户的id(管理后台查看)
|
||||
4.在项目根目录执行命令source .env.e2e && npx playwright test ,生成的报告在test/e2e下
|
||||
|
||||
|
||||
@@ -1,21 +1,34 @@
|
||||
import { test, expect } from '@playwright/test';
|
||||
import { link } from 'node:fs';
|
||||
const baseURL = process.env.GITEA_URL;
|
||||
if (!baseURL) {
|
||||
throw new Error("请设置 GITEA_URL 环境变量");
|
||||
const {
|
||||
GITEA_URL,
|
||||
TEST_USER,
|
||||
TEST_PASS,
|
||||
TEST_REPO_VALID,
|
||||
TEST_REPO_EMPTY,
|
||||
TEST_REPO_INVALID,
|
||||
TEST_USER_ADMIN,
|
||||
TEST_PASS_ADMIN,
|
||||
TEST_ADMIN_USER_ID,
|
||||
TEST_REPO_ADMIN
|
||||
} = process.env;
|
||||
|
||||
// 检查关键配置是否存在
|
||||
if (!GITEA_URL || !TEST_USER || !TEST_PASS || !TEST_REPO_VALID) {
|
||||
throw new Error("请确保 .env.e2e 配置文件已加载,并包含 GITEA_URL, TEST_USER, TEST_PASS, TEST_REPO_VALID");
|
||||
}
|
||||
test('DevContainer 功能和配置', async ({ page,context }) => {
|
||||
|
||||
console.log("正在登陆");
|
||||
await page.goto(baseURL + '/user/login');
|
||||
await page.fill('#user_name', 'jiaojunming');
|
||||
await page.fill('#password', 'hwyhwy12');
|
||||
await page.goto(GITEA_URL + '/user/login');
|
||||
await page.fill('#user_name',TEST_USER);
|
||||
await page.fill('#password', TEST_PASS);
|
||||
await page.getByRole('button', { name: 'Sign In' }).click();
|
||||
await expect(page).toHaveURL(baseURL + '/');
|
||||
await expect(page).toHaveURL(GITEA_URL + '/');
|
||||
console.log("登录成功! ");
|
||||
|
||||
console.log("进入test1仓库");
|
||||
await page.goto(baseURL + '/jiaojunming/test1');
|
||||
await page.goto(GITEA_URL + '/'+ TEST_REPO_VALID);
|
||||
await page.getByRole('link', { name: 'Dev Container' }).click();
|
||||
await expect(page.getByText('devcontainer.json')).toBeVisible();
|
||||
await expect(page.getByRole('button', { name: 'Create Dev Container' })).toBeVisible();
|
||||
@@ -51,32 +64,32 @@ test('DevContainer 功能和配置', async ({ page,context }) => {
|
||||
console.log("test1 检查通过!");
|
||||
|
||||
console.log("test2仓库");
|
||||
await page.goto(baseURL + '/jiaojunming/test2');
|
||||
await page.goto(GITEA_URL + '/'+ TEST_REPO_EMPTY);
|
||||
await page.getByRole('link', { name: 'Dev Container' }).click();
|
||||
await expect(page.getByText('Oops, it looks like there is no Dev Container Setting in this repository.')).toBeVisible();
|
||||
console.log("test2 检查通过");
|
||||
|
||||
console.log("test3仓库");
|
||||
await page.goto(baseURL + '/jiaojunming/test3');
|
||||
await page.goto(GITEA_URL+ '/' + TEST_REPO_INVALID);
|
||||
await page.getByRole('link', { name: 'Dev Container' }).click();
|
||||
await expect(page.getByText(' Invalid Dev Container Configuration')).toBeVisible();
|
||||
console.log("test3检查通过");
|
||||
});
|
||||
test('权限修改相关', async ({ page }) => {
|
||||
console.log("正在登陆");
|
||||
await page.goto(baseURL + '/user/login');
|
||||
await page.fill('#user_name', 'jiaojunming');
|
||||
await page.fill('#password', 'hwyhwy12');
|
||||
await page.goto(GITEA_URL + '/user/login');
|
||||
await page.fill('#user_name', TEST_USER_ADMIN);
|
||||
await page.fill('#password', TEST_PASS_ADMIN);
|
||||
await page.getByRole('button', { name: 'Sign In' }).click();
|
||||
await expect(page).toHaveURL(baseURL + '/');
|
||||
await expect(page).toHaveURL(GITEA_URL + '/');
|
||||
console.log("登录成功! ");
|
||||
|
||||
console.log('权限配置');
|
||||
await page.goto(baseURL+'/-/admin/users/1/edit');
|
||||
await page.goto(GITEA_URL+ '/-/admin/users/' + TEST_ADMIN_USER_ID + '/edit');
|
||||
const devContainerCheckbox = page.getByLabel(/May Create Devcontainers/i);
|
||||
await devContainerCheckbox.uncheck();
|
||||
await page.getByRole('button', { name: 'Update User Account' }).click();
|
||||
await page.goto(baseURL + '/jiaojunming/test1');
|
||||
await page.goto(GITEA_URL + '/' + TEST_REPO_ADMIN);
|
||||
const devContainerLink = page.getByRole('link', { name: 'Dev Container' });
|
||||
await expect(devContainerLink).toBeHidden({ timeout: 10000 });
|
||||
console.log('权限设置成功!');
|
||||
|
||||
Reference in New Issue
Block a user