Skip to main content

No project description provided

Project description

pytest-publish

pytest-publish is a simple pytest plugin for publishing test results mid-session.

Useful for live applications running on top of pytest (UI, logstash, etc).

Usage

There are 2 switches which can be turned on, each run every time a test has finished running:

  1. --publish <url> to publish JSON reports to REST API.
  2. --pubdir <path> to write results to filesystem.

--publish

Run test like this:

$ pytest --publish http://localhost:7777/test-update

On each test result, an HTTP POST request with the following JSON data will be submitted:

# from pytest_publish.py
@dataclass_json
@dataclass
class TestResult:
    @dataclass_json
    @dataclass
    class ExcInfo:
        type: str
        value: str
        traceback: list[str]

    type: str
    result: str  # "pass", "skip", "fail"
    nodeid: str
    start_time: float
    stop_time: float
    duration: float
    stdout: str
    stderr: str
    log: str
    xdist_dist: str | None  # only with xdist
    xdist_worker: str | None  # only with xdist
    xdist_scope: str | None  # only with xdist
    excinfo: ExcInfo | None = None  # only if "skip" or "fail"

--pubdir

Run test like this:

$ pytest --pubdir /tmp/a

On each test result, the following directory tree will be created:

/tmp/a
/tmp/a/test_a
/tmp/a/test_a/.lock
/tmp/a/test_a/count
/tmp/a/test_a/0.pass               # <index>.<result> 
/tmp/a/test_a/0.pass/brief.txt     # textual description of result 
/tmp/a/test_a/0.pass/result.json   # same data as --publish
/tmp/a/test_a/0.pass/exception.txt # only if "skip" or "fail"
/tmp/a/test_a/0.pass/stdout.txt    # only if any stdout
/tmp/a/test_a/0.pass/stderr.txt    # only if any stderr
/tmp/a/test_a/0.pass/log.txt       # only if any logs

NOTE: If xdist's --dist loadgroup is run with xdist, the directory tree will look like this:

/tmp/a/<scope>
/tmp/a/<scope>/<test_name>
/tmp/a/<scope>/<test_name>/count

Notice the addition of the <scope> to the directory tree above.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest_publish-1.2.0.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

pytest_publish-1.2.0-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

File details

Details for the file pytest_publish-1.2.0.tar.gz.

File metadata

  • Download URL: pytest_publish-1.2.0.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.12.2 Darwin/20.6.0

File hashes

Hashes for pytest_publish-1.2.0.tar.gz
Algorithm Hash digest
SHA256 2786338d7864d85548b00da57ec113ca90cb7cd6d7836d0a6d6180a83bbbf53e
MD5 5b3609f61c5ccbda49efa407fa86c6d7
BLAKE2b-256 1e558a774fecce4ceb39a0f9323e301ac7ec76519c78cab545c7dbb68585e068

See more details on using hashes here.

File details

Details for the file pytest_publish-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: pytest_publish-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 4.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.12.2 Darwin/20.6.0

File hashes

Hashes for pytest_publish-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f7a86b0912b038fa470abf006ad3655f134bb0244097c2ff0d25ba65df5b9d1a
MD5 8b5f0f85900c8047f6c397ef148a4a89
BLAKE2b-256 edb5241ac7c5ec5297ac388648c276054f33e3ba95367338510569a8323a6288

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page