Skip to main content

High level test framework

Project description

Lift Integration-Functional Testing - A meta test framework

Build Status Code style: black

Usually, there is not much to discuss when writing unit tests.
They have to use the same programming language as the code they are testing and most languages have a set of dedicated test frameworks that you may chose from.

However, functional and integration tests are more often a bunch of scripts/executables written in different languages.
For example, you may prefer to use shell scripts to test a web-service (eg. via curl) and a Python program to interact with Python modules.
And if C/Ruby/Perl/PHP/whatever is more suited to some of your test cases, you want to use these languages too without having to write the full test suite with it.

Currently, most projects seem to have either multiple functional/integration test suites (re-using different unit testing frameworks) or internal solutions to group all the tests executable together in a more or less clean way.

Lift provides an integration/functional test platform which handles executable tests easily and generically.

Features

  • Lift only deals with executables and their return code
    → A particular test can be written in the language that fit it the most
  • Test declaration in a simple YAML syntax
    → No need to learn a programming language to integrate a test in a suite
  • Easily declare a test as running locally or on a remote machine
  • Remote tests: upload needed assets automatically and cleanup afterward
  • Naturally organize a test suite in multiple sub-folders/sub-test suites
  • Easily run a sub-test suite or specific tests from the command line
  • Pass environment variables to tests
  • Inheritance of remotes and environment across sub-test suites
    → For example, remotes can be defined in the top folder and used below
  • Only one command to run all or specific tests: lift
  • Export XUnit reports, for easy integration with Jenkins & friends

Documentation

The doc folder contains man pages.

Example

For a fully commented example of a lift test suite (which can also be seen as a functional test suite for Lift itself), see the example folder.

Installation

Use sudo python3 setup.py install

If you want to build and install the man pages, run:

sudo rst2man doc/lift.rst /usr/share/man/man1/lift.1
sudo rst2man doc/lift.yaml.rst /usr/share/man/man1/lift.yaml.1
Dependencies
  • Python 3 (>= 3.4)
  • python3-yaml
  • python3-paramiko
  • python3-docutils (for man pages)
  • python3-junit.xml

Home page

https://github.com/Malizor/lift

License

GNU General Public License (GPL) version 2+
Please refer to the COPYING file.

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

lift-2.6.1.zip (33.8 kB view details)

Uploaded Source

File details

Details for the file lift-2.6.1.zip.

File metadata

  • Download URL: lift-2.6.1.zip
  • Upload date:
  • Size: 33.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.7

File hashes

Hashes for lift-2.6.1.zip
Algorithm Hash digest
SHA256 05755128f1ec08b0145ef41ce90ce921e9ae52e0dbae804aa2f738d6ccc52b38
MD5 b0694a53410283b186cbf52fd1dbea12
BLAKE2b-256 88cb2c16105612abedba195ff5337e155e5b4e9d30b65eb4a2e9512c753ddbc9

See more details on using hashes here.

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