Skip to content

Lệnh CLI / zenify e2e run

zenify e2e run ​

Chạy journey E2E trong Docker, trỏ vào dev server đang mở trên máy bạn.

Cú pháp ​

text
zenify e2e run [flags]

Khi nào dùng ​

Khi journey đã qua zenify e2e lint và dev server của worktree đang chạy. Lệnh tự lint lại trước khi chạy, journey hời sẽ dừng ngay.

Kết quả ​

Lệnh khởi động container Playwright đã ghim phiên bản, đăng nhập một lần bằng tài khoản E2E lấy từ broker khi manifest khai báo broker:, hoặc bằng các key E2E_DOMAIN, E2E_EMAIL, E2E_PASSWORD trong .zenify/.env khi không có broker, rồi chạy mọi journey trong .znf/e2e. Kết quả Playwright in ra màn hình. Khi ZNF_E2E_ACCOUNTS_FILE khác rỗng (chỉ e2e login và e2e run --local), tài khoản của vai đọc từ file JSON đó ({"<role>": {"domain", "email", "password"}}), không gọi broker, không cần manifest khai broker:.

Repo cần file .znf/e2e/e2e.config.json. Thiếu file này, lệnh báo repo chưa cấu hình e2e và dừng.

Cờ ​

CờÝ nghĩa
--portPort dev server trên máy bạn. Cần đúng một trong --port hoặc --base-url.
--base-urlOrigin cần test thay cho dev server, ví dụ https://staging.example.com. Chỉ nhận origin (bỏ path, host không phân biệt hoa thường) nằm trong baseUrls của .znf/e2e/e2e.config.json; ngoài danh sách hoặc thiếu baseUrls thì lệnh thoát mã 2 trước khi chạy Docker.
--localChạy trên Playwright của host (cùng harness với zenify e2e login) thay vì Docker, không cần Docker. Chỉ nhận app loopback (--port, hoặc --base-url là localhost/127.0.0.1). Lệnh vẫn lint trước, rồi chép .znf/e2e vào harness và chạy npx playwright test, giữ khóa harness.lock suốt từ lúc chép tới lúc chạy xong: hai lần chạy --local (hoặc một lần chạy và zenify e2e login) trên cùng máy đi lần lượt, lần sau chờ tối đa 120 giây rồi báo lỗi. Khóa là khóa của hệ điều hành (flock, trên Windows là LockFileEx) và được truyền cho npm/npx con: zenify bị kill (ví dụ timeout) mà Playwright con còn chạy thì khóa vẫn giữ tới khi con dừng, rồi hệ điều hành tự nhả, nên không còn khóa treo phải xóa tay. Trên Windows khóa chỉ gắn với tiến trình zenify. File khóa rỗng do bản zenify cũ để lại (cơ chế O_EXCL) vẫn được tôn trọng: lệnh chờ như bản cũ, và coi là bỏ hoang khi file quá 10 phút. Bỏ qua npm install khi harness đã có @playwright/test 1.64.1, bỏ qua tải chromium khi PLAYWRIGHT_BROWSERS_PATH đã có cả chromium-<revision> và chromium_headless_shell-<revision> đúng revision mà harness cần (đọc từ playwright-core/browsers.json), nên chạy được khi không có mạng. Journey của repo chạy như code Node trên máy bạn, ngoài container, có tài khoản E2E trong env: chỉ chạy --local trên nhánh bạn tin.
--prepareChỉ đi cùng --local: chuẩn bị harness (npm và chromium) rồi thoát mã 0, không chạy test. Image worker gọi lúc build.
--repoĐường dẫn repo. Mặc định thư mục hiện tại.
--roleRole tài khoản E2E xin từ broker (administrator, supervisor, team_leader, agent, sale, sale_team_leader). Cần manifest khai báo broker:; không có broker thì lệnh thoát mã 2. Không có --role mà có broker thì dùng administrator.

Ví dụ ​

bash
zenify e2e run --repo repos/contact-center-web --port $(git -C repos/contact-center-web/.worktrees/my-task config --get wt.port)

Lưu ý ​

Không có --local thì cần Docker đang chạy. Nếu thiếu Docker, chạy zenify doctor để xem môi trường.

Lệnh liên quan ​

  • zenify e2e: Nhóm lệnh cho journey E2E: lint chống test hời và chạy journey Playwright thật trong Docker.