You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
2.0 KiB
ReStructuredText
58 lines
2.0 KiB
ReStructuredText
============================
|
|
Tempest Field Guide Overview
|
|
============================
|
|
|
|
Tempest is designed to be useful for a large number of different
|
|
environments. This includes being useful for gating commits to
|
|
OpenStack core projects, being used to validate OpenStack cloud
|
|
implementations for both correctness, as well as a burn in tool for
|
|
OpenStack clouds.
|
|
|
|
As such Tempest tests come in many flavors, each with their own rules
|
|
and guidelines. Below is the overview of the Tempest repository structure
|
|
to make this clear.
|
|
|
|
.. code-block:: console
|
|
|
|
tempest/
|
|
api/ - API tests
|
|
scenario/ - complex scenario tests
|
|
tests/ - unit tests for Tempest internals
|
|
|
|
Each of these directories contains different types of tests. What
|
|
belongs in each directory, the rules and examples for good tests, are
|
|
documented in a README.rst file in the directory.
|
|
|
|
:ref:`api_field_guide`
|
|
----------------------
|
|
|
|
API tests are validation tests for the OpenStack API. They should not
|
|
use the existing Python clients for OpenStack, but should instead use
|
|
the Tempest implementations of clients. Having raw clients let us
|
|
pass invalid JSON to the APIs and see the results, something we could
|
|
not get with the native clients.
|
|
|
|
When it makes sense, API testing should be moved closer to the
|
|
projects themselves, possibly as functional tests in their unit test
|
|
frameworks.
|
|
|
|
|
|
:ref:`scenario_field_guide`
|
|
---------------------------
|
|
|
|
Scenario tests are complex "through path" tests for OpenStack
|
|
functionality. They are typically a series of steps where complicated
|
|
state requiring multiple services is set up exercised, and torn down.
|
|
|
|
Scenario tests should not use the existing Python clients for OpenStack,
|
|
but should instead use the Tempest implementations of clients.
|
|
|
|
|
|
:ref:`unit_tests_field_guide`
|
|
-----------------------------
|
|
|
|
Unit tests are the self checks for Tempest. They provide functional
|
|
verification and regression checking for the internal components of Tempest.
|
|
They should be used to just verify that the individual pieces of Tempest are
|
|
working as expected.
|