CheckOps home

Tools directory

P

CheckOps

pytest-embedded

pytest-embedded is Espressif's MIT pytest plugin for embedded testing, with services for serial, ESP-IDF, Arduino, QEMU, Wokwi and JTAG.

Visit website

Latest public signals

Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.

Visit Website

Introduction

pytest-embedded is a pytest plugin with multiple services designed for embedded testing. Services are activated with --embedded-services, for example serial, esp, idf, arduino, qemu, wokwi and jtag.

Tests receive a device fixture to flash firmware and expect output on the serial console, so the same test can run on real Espressif boards, in QEMU or in the Wokwi simulator. It is maintained by Espressif and used in ESP-IDF CI.

In the quality loop it automates firmware tests on hardware or simulators.

The source code is at espressif/pytest-embedded on GitHub under the MIT licence, with about 158 stars; the most recent commit was on 27 October 2026.

Features

  1. Serial service: Expect console output.
  2. ESP-IDF service: Flash and test IDF apps.
  3. Arduino service: Arduino sketches.
  4. QEMU service: Emulated runs.
  5. Wokwi service: Simulator runs.
  6. JTAG service: Debug interfaces.

Pros

  1. Same tests, many targets: Hardware or simulation.
  2. Free to use: Open source under the MIT licence, so the core tool costs nothing to use.
  3. Actively maintained: The repository had commits as recent as 27 October 2026.

Cons

  1. Espressif focus: Best for ESP chips.
  2. Version pinning: Use compatible ~=2.0 style pins.
  3. Hardware setup: Boards needed for on-target runs.
def test_hello(dut):
    dut.expect("Hello world!")
pytest --embedded-services esp,idf --target esp32

Resources:

Pricing

pytest-embedded is free and open source under the MIT licence.

  1. ESP32 and ESP-IDF developers.

Conclusion

pytest-embedded brings pytest ergonomics to firmware tests.

Run in simulation for fast CI and on boards nightly.

On CheckOps, pytest-embedded is filed under the Integration testing and Unit testing stages. Related tools listed here include Renode, Ceedling, cmocka, Unity Test (C), labgrid and Wokwi. When comparing them, weigh the licence, the languages and platforms each supports, whether it is self-hosted or managed, and how cleanly it slots into your existing CI pipeline. Details on this page were checked against the official website, documentation and repository on 11 November 2026.

Alternatives

Other tools on CheckOps that cover similar ground. Open a page, or compare one with pytest-embedded side by side.