mirror of
https://github.com/esphome/esphome.git
synced 2026-05-13 20:29:48 +08:00
f87aa384d0
CI / Create common environment (push) Has been cancelled
CI / Check pylint (push) Has been cancelled
CI / Run script/ci-custom (push) Has been cancelled
CI / Run pytest (macOS-latest, 3.11) (push) Has been cancelled
CI / Run pytest (ubuntu-latest, 3.11) (push) Has been cancelled
CI / Run pytest (ubuntu-latest, 3.13) (push) Has been cancelled
CI / Run pytest (windows-latest, 3.11) (push) Has been cancelled
CI / Determine which jobs to run (push) Has been cancelled
CI / Run integration tests (push) Has been cancelled
CI / Run C++ unit tests (push) Has been cancelled
CI / Run script/clang-tidy for ESP32 IDF (push) Has been cancelled
CI / Run script/clang-tidy for ESP8266 (push) Has been cancelled
CI / Run script/clang-tidy for ZEPHYR (push) Has been cancelled
CI / Run script/clang-tidy for ESP32 Arduino (push) Has been cancelled
CI / Run script/clang-tidy for ESP32 Arduino 1/4 (push) Has been cancelled
CI / Run script/clang-tidy for ESP32 Arduino 2/4 (push) Has been cancelled
CI / Run script/clang-tidy for ESP32 Arduino 3/4 (push) Has been cancelled
CI / Run script/clang-tidy for ESP32 Arduino 4/4 (push) Has been cancelled
CI / Test components batch (${{ matrix.components }}) (push) Has been cancelled
CI / pre-commit.ci lite (push) Has been cancelled
CI / Build target branch for memory impact (push) Has been cancelled
CI / Build PR branch for memory impact (push) Has been cancelled
CI / Comment memory impact (push) Has been cancelled
CI / CI Status (push) Has been cancelled
Synchronise Device Classes from Home Assistant / Sync Device Classes (push) Has been cancelled
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
How to write C++ ESPHome unit tests
- Locate the folder with your component or create a new one with the same name as the component.
- Write the tests. You can add as many
.cppand.hfiles as you need to organize your tests.
IMPORTANT: wrap all your testing code in a unique namespace to avoid linker collisions when compiling
testing binaries that combine many components. By convention, this unique namespace is esphome::component::testing
(where "component" is the component under test), for example: esphome::uart::testing.
Running component unit tests
(from the repository root)
./script/cpp_unit_test.py component1 component2 ...
The above will compile and run the provided components and their tests.
To run all tests, you can invoke cpp_unit_test.py with the special --all flag:
./script/cpp_unit_test.py --all
To run a specific test suite, you can provide a Google Test filter:
GTEST_FILTER='UART*' ./script/cpp_unit_test.py uart modbus
The process will return 0 for success or nonzero for failure. In case of failure, the errors will be printed out to the console.