Framework for automating tests involving hardware test fixtures.
Project description
Nanaimo is a set of utilities and plugins designed to enable real hardware test apparatuses to be integrated with unit test frameworks like 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 a hardware-in-the-loop platform. Instead it’s focused on testing small integrations with one or two hardware components and instruments. Examples of this might include verifying a SPI driver for a microcontroller or ensuring a serial bootloader’s upload performance meets expected KPIs. To do this Nanaimo abstractions of instruments provide async interfaces to hardware either directly using communication busses like serial or ethernet or by invoking a CLI provided by the instrument vendor. Because of this, some instruments will require additional programs be installed on a system to work.
This design is an amalgam of the TLYF (Test Like You Fly) methodology and the Swiss cheese model of failure analysis. Specifically; the goal is to encourage testing on actual or representative hardware early in the testing process of a system to make the cheese loaf less hole-y.
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.5-4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f58f5fc67b32c74509df23f7e8d4d8e49818a53225425bf4f7e89ff253da4055 |
|
MD5 | 5d197c30791a62d744a812a7703fd21c |
|
BLAKE2b-256 | 535a0f80c0b156e116ebd12da3dfa2fa59d0df0d66818d8092510d141899a1fe |
Hashes for nanaimo-0.0.5-3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a2bf55fa3f928d83f46c281bd83fe118fd298a484cb90869131166cff5c3364 |
|
MD5 | 344154b99f66f3a26291f4adf64e2c95 |
|
BLAKE2b-256 | d94029332e6713f3ff69e06eade28934fa5330a2dd8d8193d3a836b6bff3555c |
Hashes for nanaimo-0.0.5-2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 277ac2c47e4320c275a9870a10964f523511493bfde2dcab2f371ee9cc483461 |
|
MD5 | 52f4288737e432432a6c118023328402 |
|
BLAKE2b-256 | 7ec2afc3b49955a3f879aff14b904f8a7f6d6e08a4a03d58c12e198d499ec2af |
Hashes for nanaimo-0.0.5-1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 505d72557d79bd32211a01149d72ff7e127c1410efec0d19a2ba87c3b99da1ac |
|
MD5 | d7375a1d9e43099606f79e2a26a75c6b |
|
BLAKE2b-256 | e9432ea74a8cc9d7e64eb6ed48af773e2f66e1c5310d89006f20b28692471ec3 |