Framework for automating tests involving hardware test fixtures.
Project description
Nanaimo is a set of utilities and plugins designed to enable integration of hardware test apparatuses with pytest. This can allow on-target tests to run as part of continuous integration pipelines like Buildkite, Bamboo, or Jenkins.
Nanaimo is designed to enable testing of software-defined, physical components in isolation to provide pre-integration verification of software interfaces and behavioral contracts. It adapts asynchronous control and monitoring of these components to fit familiar testing idioms (e.g. x-unit testing) using the popular python test framework, pytest.
Nanaimo is not a simulation framework and is not designed to support the complexity of a full hardware-in-the-loop platform. Instead it’s focused on testing small integrations with a few hardware components and instruments using concepts, syntax, and frameworks familiar to software engineers. Examples of these small integrations might include verifying a SPI driver for a microcontroller or ensuring the upload time for a serial bootloader meets expected Key-Performance-Indicators (KPIs). To do this Nanaimo abstractions provide async interfaces to hardware either directly using available communication protocols (e.g. serial or IP networks) or by invoking a CLI provided by the instrument vendor. Because of this latter use case some instruments will require additional programs be available in a test environment.
This design is an amalgam of the TLYF (Test Like You Fly) methodology and the Swiss cheese model of failure analysis. Specifically; Nanaimo facilitates testing on actual or representative hardware for the first integration of software into a part or subassembly. Traditionally software engineers were responsible only for unit-testing and Software-In-the-Loop (SIL) simulation of their code. Nanaimo encourages software engineers to also provide hardware integration tests by enabling Hardware-In-the-Loop continuous-integration (HIL-CI, perhaps?).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for nanaimo-0.0.11-12-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 267397812de5dcd30d3d7c46967a1631a4c31aec89ccb90429115cf459d4b83b |
|
MD5 | 07e7c0c1622d8e7fe8a38e45c751f333 |
|
BLAKE2b-256 | 28fafeb568553e4bf2f18281da894ca3a2eb6ec8e70add88f2666d95aa8d516e |
Hashes for nanaimo-0.0.11-11-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f99f2d0a947bf2ae4443e49ae19cca4dfcb0d578244e14abcd680b647167c7b3 |
|
MD5 | cee16051df6af11997a173e1bbe19050 |
|
BLAKE2b-256 | a43fc5a61ca3303301c30d4f6110dd82fca6c3f75e301c5eae990176942f44da |
Hashes for nanaimo-0.0.11-10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbb4e4f312b7a43579787661c093164e9f0d60f9c9447c54f3e16f7c03c2588f |
|
MD5 | 705358a74038e8821a5ba0bf01423576 |
|
BLAKE2b-256 | c76d056384ef550ca11de2f6eefd7822788fdd20e9ea7cad1e4b91835dfaa49b |