Skip to main content

canyonjs-playwright-python

@canyonjs/playwright 的 Python 实现,为 Playwright Python 提供 Istanbul 覆盖率收集能力。

安装

pip install canyonjs-playwright

或从源码安装(开发模式):

pip install -e .

用法

方式一:pytest_plugins(推荐,类似 baseTest.ts)

在 conftest.py 中添加一行即可自动启用,所有使用 page 的测试都会自动收集覆盖率:

# conftest.py
pytest_plugins = ["canyonjs_playwright.pytest_plugin"]

测试用例无需修改,直接使用 page:

def test_example(page):
    page.goto("https://example.com")
    assert "Example" in page.title()

方式二:自定义输出目录

# conftest.py
import os
os.environ["CANYON_OUTPUT_DIR"] = ".canyon_output"
pytest_plugins = ["canyonjs_playwright.pytest_plugin"]

方式三:手动使用 fixture

# conftest.py
from canyonjs_playwright import create_coverage_context_fixture

coverage_context = create_coverage_context_fixture(output_dir=".canyon_output")
# test_example.py
def test_example(page, coverage_context):
    page.goto("https://example.com")

运行步骤

1. 创建虚拟环境(推荐)

python3 -m venv venv
source venv/bin/activate   # macOS/Linux
# Windows: venv\Scripts\activate

2. 安装依赖

python -m pip install -r requirements.txt

3. 安装 Chromium 浏览器

python -m playwright install chromium

4. 运行测试

python -m pytest

可选参数

参数 说明
--headed 有界面模式运行(显示浏览器窗口)
-v 详细输出
--tracing=retain-on-failure 失败时保留 trace 便于调试

项目结构

canyonjs-playwright-python/
├── src/
│   └── canyonjs_playwright/    # 包源码
│       ├── __init__.py
│       ├── fixtures.py
│       └── pytest_plugin.py
├── tests/
│   ├── conftest.py
│   ├── test_baidu.py
│   └── test_canyon.py
├── pyproject.toml
├── requirements.txt
├── pytest.ini
└── .github/workflows/
    └── playwright.yml

输出

覆盖率数据写入 coverage-{timestamp}.json,默认目录为 .canyon_output。

注意:仅当被测页面有 Istanbul 注入的 window.__coverage__ 时才会生成覆盖率文件。

依赖

  • Python >= 3.8
  • playwright >= 1.40.0
  • pytest-playwright >= 0.4.0

CI

推送到 GitHub 后,GitHub Actions 会自动运行测试。失败时可在 Actions 页面下载 trace 文件,在 trace.playwright.dev 查看。

Metadata

Release files for canyonjs-playwright 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for canyonjs-playwright 0.1.2
File Size Uploaded
canyonjs_playwright-0.1.2.tar.gz 3.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for canyonjs-playwright 0.1.2
File Interpreter ABI Platform
canyonjs_playwright-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 8.5 kB

Release files / canyonjs_playwright-0.1.2.tar.gz

Download URL canyonjs_playwright-0.1.2.tar.gz
Size 3.9 kB
Tags Source
SHA-256 checksum
How to use checksums
4d753f5bbe1bcc0fa3c36749695a250212a54cf6914dd094763879c3e5c205fd
BLAKE2b-256 checksum
How to use checksums
b61ee3f17179e52d94f530258073280075bbe9ee895aecb2b19dc406989e4cdf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 18, 2026.

Transparency log

Release files / canyonjs_playwright-0.1.2-py3-none-any.whl

Download URL canyonjs_playwright-0.1.2-py3-none-any.whl
Size 4.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6c67c9ae18048ee0b5677c09a462b9b25b04deb41d2388befc32301cf1e5a653
BLAKE2b-256 checksum
How to use checksums
ecbf158a7ae15005169c59387ab56fbb74b5f202ee61fa2e17017de43cab9800
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 18, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page