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.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
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
- Serial service: Expect console output.
- ESP-IDF service: Flash and test IDF apps.
- Arduino service: Arduino sketches.
- QEMU service: Emulated runs.
- Wokwi service: Simulator runs.
- JTAG service: Debug interfaces.
Pros
- Same tests, many targets: Hardware or simulation.
- Free to use: Open source under the MIT licence, so the core tool costs nothing to use.
- Actively maintained: The repository had commits as recent as 27 October 2026.
Cons
- Espressif focus: Best for ESP chips.
- Version pinning: Use compatible ~=2.0 style pins.
- Hardware setup: Boards needed for on-target runs.
Usage and Links (Example)
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.
Recommended for?
- 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.
RRenodeRenode is Antmicro's MIT-licensed open-source simulation framework that runs unmodified embedded firmware on virtual boards and multi-node networks, with Robot Framework-based testing for CI.Compare with pytest-embedded
CCeedlingCeedling is an MIT build and test system for C projects from ThrowTheSwitch, combining Unity, CMock and CException for embedded unit testing.Compare with pytest-embedded
Ccmockacmocka is an Apache-2.0 unit testing framework for C with mock objects that needs only the standard C library, working across platforms including embedded.Compare with pytest-embedded
UUnity Test (C)Unity is an MIT-licensed unit testing framework for C focused on embedded toolchains, consisting of a single C file and two headers, from ThrowTheSwitch.org alongside CMock and Ceedling.Compare with pytest-embedded
Llabgridlabgrid is an LGPL-2.1-or-later Python library from Pengutronix for controlling embedded boards in automated tests, with remote access, power and boot control, and a pytest plugin.Compare with pytest-embedded
WWokwiWokwi is an online and VS Code simulator for ESP32, Arduino, STM32 and other microcontrollers, with Wokwi CI for automated firmware tests in GitHub Actions and GitLab CI.Compare with pytest-embedded