Installation¶
There are two ways to install and use MTF: to set up it locally or alternatively on a virtual machine via the Vagrant tool.
Topics
Vagrant¶
Vagrant is a tool to aid developers in quickly deploying development environments. There is a Vagrantfile in the meta-test-family git repository on GitHub that can automatically deploy a virtual machine on your host with a MTF environment configured.
The MTF tool has been made available for use of two providers: libvirt
(for Linux host only) and virtualbox
(for MAC OS, Windows and Linux hosts), where libvirt
is a default one. See more about Vagrant providers here.
This document assumes that you are running a recent version of Fedora although these steps should be roughly the same on other distributions, just be aware that package managers and names can differ if you are not using Fedora as your host. Consult Vagrant installation documentation to set up Vagrant for a different platform and adjuest the steps of this document accordingly.
Note
Before you start using Vagrant-libvirt, please make sure your libvirt and qemu installation is working correctly and you are able to create qemu or kvm type virtual machines with virsh or virt-manager.
Prerequisites for Vagrant¶
- Install Vagrant. Ensure that
vagrant-libvirt
is among pulled dependencies.
# install Vagrant
$ sudo dnf -y install vagrant
- Start
libvirtd
service
# start libvirtd service
$ sudo systemctl start libvirtd
Creating the Vagrant environment¶
After preparing the libvirt prerequisites using the instructions above:
- You are now prepared to check out the MTF code into your preferred location.
# cd to your prefered location
$ cd $HOME/ # Season to taste.
$ git clone https://github.com/fedora-modularity/meta-test-family.git
- Next, enter into the
meta-test-family
directory.
# cd in meta-test-family
$ cd meta-test-family
- The MTF tool provides a configuration Vagrantfile that you can use to configure the Vagrant environment as given or open the Vagrantfile in your favorite editor and modify it to better fit your development preferences. This step is entirely optional as the default Vagrantfile should work for most users.
# vim Vagrantfile
$ vim Vagrantfile
- If you’ve happy with the Vagrantfile, you can begin provisioning your Vagrant environment. Finish by running
vagrant reload
to reboot machine after provisioning and apply the latest kernel updates.
# Provision the Vagrant environment:
$ sudo vagrant up --provider=libvirt # or just `sudo vagrant up` as libvirt is a default one
# Alternatively, set the TARGET envvar to test another target defined in examples/testing-module/Makefile
$ sudo TARGET=check-pure-docker vagrant up
# The above will run for a while while it provisions your development environment.
$ sudo vagrant reload # Reboot the machine at the end to apply kernel updates, etc.
- Once you have followed the steps above, you should have a running deployed MTF development machine. Log into your Vagrant environment:
# ssh into the Vagrant environment
$ sudo vagrant ssh
Local installation¶
Requirements¶
MTF installer pulls its latest dependencies: python-devel
, python-setuptools
and python-netifcaes
, docker
, avocado, yaml
and json
.
MTF supports Gherkin-based testing in Python. To write tests in a natural language style, backed up by Python code, install the BBD tool behave . Execute the following command to install behave with pip:
# install behave
$ sudo pip install behave
Installing MTF¶
Install MTF rpm from Fedora Copr repo.
# add meta-test-family yum repo
$ sudo dnf copr enable phracek/meta-test-family
$ sudo dnf install -y meta-test-family
MTF scripts, examples and documentation will be installed into /usr/share/moduleframework
Source code¶
You may also wish to follow the GitHub MTF repo if you have a GitHub account. This stores the source code and the issue tracker for sharing bugs and feature ideas. The repository should be forked into your personal GitHub account where all work will be done. Any changes should be submitted through the pull request process. Please see Contributing Guidelines for more information.
See also
- User Guide
- User Guide
- webchat.freenode.net
- Questions? Help? Ideas? Stop by the #fedora-modularity chat channel on freenode IRC.