# Convert2RHEL user story when interacting with TFT
TMT[1] is an excellent meta testing framework with a strong focus on solving the problem of
testing your application in different OS/hardware environments. TMT has nice features
to declare the testing environment, in a convenient and
reusable manner (using fmf metadata format [2]). TMT also provides a possibility to
discover your tests and run them in different environments.
What next? As an owner of upstream and, optionally, downstream project you need some
automated way to integrate TMT
into the CI workflow. So you'll be able to run your tests at scale and configure which tests to run under which conditions (CI jobs and triggers). Here's a solution to solve this problem: Packit [3] as a CI system provider and TFT [4] as an infrastructure
as a service with the support of TMT-based tests as a first-class citizen.
Packit simplifies the interaction with the TFT, by natively supporting TFT API.
These three systems form a complete, language-agnostic CI solution for projects
which has as requirements:
- Rely on internal Red Hat resources
- Hard and specific requirements for the testing environment (i.e. machines with
specific hardware and OS, reboot as a part of the testing workflow, etc.)
- QE as a bottleneck in the development process
After integrating these systems (for today, it is partly integrated), the Convert2RHEL team
significantly improved the speed
of delivering features, and now all integration tests for new features are written by
the feature developers.
References:
[1] https://tmt.readthedocs.io/
[2] https://fmf.readthedocs.io/
[3] https://packit.dev/
[4] https://testing-farm.gitlab.io/api/