Skip to main content

Embedded integration testing framework.

Project description

License Platforms Supported python version Build status Documentation Status Test results codecov Code quality Last commit Commits since latest version

PyKiso

Optional Text

Introduction

pykiso is an integration test framework. With it, it is possible to write

  • Whitebox integration tests directly on my target device
  • Graybox integration tests to make sure the communication-link with my target device is working as expected
  • Blackbox integration tests to make sure my external device interfaces are working as expected

The project will contain:

  • The core python framework (this repository)
  • Framework plugins that are generic enough to be integrated as "native" (this repository)
  • Additional "testApps" for different targets platforms (e.g. stm32, ...) or languages (C, C++, ...) . It could be pure SW or also HW (other repositories)

Requirements

  • Python 3.7+
  • pip/poetry (used to get the rest of the requirements)

Install

pip install pykiso

Poetry is more appropriate for developers as it automatically creates virtual environments.

cd kiso-testing
poetry install
poetry shell

Pre-Commit

To improve code-quality, a configuration of pre-commit hooks are available. The following pre-commit hooks are used:

  • black
  • flake8
  • isort
  • trailing-whitespace
  • end-of-file-fixer
  • check-docstring-first
  • check-json
  • check-added-large-files
  • check-yaml
  • debug-statements

If you don't have pre-commit installed, you can get it using pip:

pip install pre-commit

Start using the hooks with

pre-commit install

Commit message convention

Commits are sorted into multiple categories based on keywords that can occur at any position as part of the commit message. [Category] Keywords

  • [BREAKING CHANGES] BREAKING CHANGE
  • [Features] feat:
  • [Fixes] fix:
  • [Docs] docs:
  • [Styles] style:
  • [Refactors] refactor!:
  • [Performances] perf:
  • [Tests] test:
  • [Build] build:
  • [Ci] ci: Each commit is considered only once according to the order of the categories listed above. Merge commits are ignored.

The tool commitizen can help you to create commits which follows these standards.

# if not yet installed:
pip install -U commitizen==2.20.4
# helps you to create a commit:
cz commit
# or use equivalent short variant:
cz c

Generate Changelog

After you installed the dev dependencies from the pipfile you are able to autogenerate the Changelog.

invoke changelog

Usage

Once installed the application is bound to pykiso, it can be called with the following arguments:

Usage: pykiso [OPTIONS] [PATTERN]

  TAG Filters: Just add pairs of arguments to the pykiso call. Multiple values
  for a key must be seperate via a comma.

  For example: pykiso -c your_config.yaml --branch dev,master --variant delta

Options:
  -c, --test-configuration-file FILE
                                  path to the test configuration file (in YAML
                                  format)  [required]

  -l, --log-path PATH             path to log-file or folder. If not set will
                                  log to STDOUT

  --log-level [DEBUG|INFO|WARNING|ERROR]
                                  set the verbosity of the logging
  --version                       Show the version and exit.
  -h, --help                          Show this message and exit.
  --junit                         enables the generation of a junit report
  --text                          default, test results are only displayed in
                                  the console
  --failfast                      stop the test run on the first error or
                                  failure
  -v, --verbose                   enables the internal logs of the framework

Suitable config files are available in the examples folder.

Demo using example config

invoke run

Running the Tests

invoke test

or

pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pykiso-0.19.1.tar.gz (134.2 kB view hashes)

Uploaded Source

Built Distribution

pykiso-0.19.1-py3-none-any.whl (195.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page