Home
Softono

Pytest Embedded

Open source Python
141
Stars
39
Forks
21
Issues
8
Watchers
2 months
Last Commit

 About Pytest Embedded

A pytest plugin that designed for embedded testing

Platforms

Web Self-hosted

Languages

Python

Need Help Installing Pytest Embedded?

We provide expert installation service for this software. Our team will install, configure, and secure Pytest Embedded on your server. plans start at just $30.

Pytest Embedded

View on GitHub

pytest-embedded

Documentation Status Python 3.10+

A pytest plugin that has multiple services available for various functionalities. Designed for embedded testing.

Installation

pytest-embedded pytest-embedded-serial pytest-embedded-serial-esp pytest-embedded-idf pytest-embedded-qemu pytest-embedded-arduino pytest-embedded-wokwi pytest-embedded-nuttx

Packages under this repo mainly use semantic versioning. Sometimes a bug fix version may contain some non-breaking new features as well.

It is recommended to use ~=2.0 to get rid of breaking changes, and use the latest new features. For example,

pip install -U pytest-embedded~=2.0

Quickstart

  • pip install -U pytest-embedded~=2.0
  • Create a file test_basic.py
from pytest_embedded import Dut


def test_basic_expect(redirect, dut: Dut):
    with redirect():
        print('this would be redirected')

    dut.expect('this')
    dut.expect_exact('would')
    dut.expect('[be]{2}')
    dut.expect_exact('redirected')
  • Run the test with pytest, the result would be like:
collected 1 item

test_basic.py .                                                        [100%]

============================= 1 passed in 0.01s =============================
  • if run with pytest -s, the output would be as follows:
collected 1 item

test_basic.py 2022-01-01 12:34:56 this would be redirected
.

============================= 1 passed in 0.01s =============================

The print line is also duplicated to console output.

Extra Services

You can activate more services with pytest --embedded-services service[,service] to enable extra fixtures and functionalities. These services are provided by several optional dependencies. You can install them via pip as well.

Available services:

  • serial: serial port utilities.
  • esp: auto-detect target/port by esptool.
  • idf: auto-detect more app info with ESP-IDF specific rules, auto-flash the binary into the target.
  • jtag: openocd/gdb utilities
  • qemu: running test cases on QEMU instead of the real target.
  • arduino: auto-detect more app info with arduino specific rules, auto-flash the binary into the target.
  • wokwi: running test cases with Wokwi instead of the real target.
  • nuttx: service for nuttx project, optionally with espressif devices.

Resources