Testinfra

Testinfra 为您测试基础设施。「Testinfra test your infrastructures」

Github stars Tracking Chart

##################################
Testinfra test your infrastructure
##################################

Latest documentation: https://testinfra.readthedocs.io/en/latest

About

With Testinfra you can write unit tests in Python to test actual state of
your servers configured by management tools like Salt_, Ansible_, Puppet_,
Chef_ and so on.

Testinfra aims to be a Serverspec_ equivalent in python and is written as
a plugin to the powerful Pytest_ test engine

License

Apache License 2.0 <https://github.com/pytest-dev/pytest-testinfra/blob/main/LICENSE>_

The logo is licensed under the Creative Commons NoDerivatives 4.0 License <https://creativecommons.org/licenses/by-nd/4.0/>_
If you have some other use in mind, contact us.

Quick start

Install testinfra using pip::

$ pip install pytest-testinfra

# or install the devel version
$ pip install 'git+https://github.com/pytest-dev/pytest-testinfra@main#egg=pytest-testinfra'

Write your first tests file to test_myinfra.py:

.. code-block:: python

def test_passwd_file(host):
    passwd = host.file("/etc/passwd")
    assert passwd.contains("root")
    assert passwd.user == "root"
    assert passwd.group == "root"
    assert passwd.mode == 0o644


def test_nginx_is_installed(host):
    nginx = host.package("nginx")
    assert nginx.is_installed
    assert nginx.version.startswith("1.2")


def test_nginx_running_and_enabled(host):
    nginx = host.service("nginx")
    assert nginx.is_running
    assert nginx.is_enabled

And run it::

$ py.test -v test_myinfra.py


====================== test session starts ======================
platform linux -- Python 2.7.3 -- py-1.4.26 -- pytest-2.6.4
plugins: testinfra
collected 3 items

test_myinfra.py::test_passwd_file[local] PASSED
test_myinfra.py::test_nginx_is_installed[local] PASSED
test_myinfra.py::test_nginx_running_and_enabled[local] PASSED

=================== 3 passed in 0.66 seconds ====================

.. _Salt: https://saltstack.com/
.. _Ansible: https://www.ansible.com/
.. _Puppet: https://puppetlabs.com/
.. _Chef: https://www.chef.io/
.. _Serverspec: https://serverspec.org/
.. _Pytest: https://pytest.org/

Main metrics

Overview
Name With Ownerpytest-dev/pytest-testinfra
Primary LanguagePython
Program languagePython (Language Count: 3)
Platform
License:Apache License 2.0
所有者活动
Created At2015-03-15 20:49:52
Pushed At2025-04-01 19:19:03
Last Commit At
Release Count90
Last Release Name10.2.2 (Posted on )
First Release Name1.0.0 (Posted on 2016-01-22 14:05:50)
用户参与
Stargazers Count2.4k
Watchers Count68
Fork Count361
Commits Count814
Has Issues Enabled
Issues Count359
Issue Open Count130
Pull Requests Count335
Pull Requests Open Count17
Pull Requests Close Count97
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private