- This tutorial will show you how to automate testing for python projects using
tox
. - If you've ever worked on a python package, chances are you have seen files like:
setup.cfg
,setup.py
,pyproject.toml
,tox.ini
, etc. This tutorial explains what they are as well as walks you through how you can use them to your benefit.
-
Table Of Contents
- Chapter 1: The Need For Test Automation
- 1.1 - Testing Without A library
- 1.2 - Using an Existing Testing Library
- 1.3 - Understanding the TOX Use Case in the Eco System
- Chapter 2 - The Need of A project Structure in Python Testing
- 2.1 - Understanding the problem with import statements
- 2.2 - Solution to the problem with import statements
- 2.3 - Making our application installable
- 2.3.1 - Understanding the
pyproject.toml
file - 2.3.2 - Understanding the
setup.py
file - 2.3.3 - Understanding the
setup.cfg
file
- 2.3.1 - Understanding the
- Chapter 3 - Using
pytest
,mypy
andflake8
- 3.1 - Adding new dependencies to requirements
- 3.2 - Adding to our metadata in
setup.cfg
- 3.3 - Adding python configurations to
pyproject.toml
- Chapter 4 - A Quick Tour of
Pytest
- 4.1 - Test Discovery
- 4.2 - Working with parameterising
- 4.3 - Skipping Tests
- 4.4 - Handling Failing Tests without breaking the build
- 4.5 - Handling Tests that raise errors
- 4.6 - Working with fixtures
- 4.6.1 - Understanding
fixture scopes
- 4.6.1 - Understanding
- 4.7 - Working with monkey patching
- 4.7.1 - Understanding the need to mock
- 4.7.2 - Monkeypatch syntax overview
- 4.8 - Understanding test coverage
- Chapter 5 - Test multiple environments with
Tox
- 5.1 - The Need for Tox and the Tox configuration file
- 5.2 - Understanding the Tox variables
- 5.3 - Understanding the flow of tox environments
- 5.4 - Executing Tox
- Chapter 6 - Test on commit with Github Actions
- 6.1 - The Need for Github Actions
- 6.2 - Configuring Github Actions
- 6.3 - Understanding Tox GH Actions
- 6.4 - Adding Build Results to README
- Chapter 1: The Need For Test Automation
-
Credits - Study Material
- This article is based on the following youtube video: https://www.youtube.com/watch?v=DhUpxWjOhME
- Please check it out. This video offers a visual counterpart to this article. It is the original video this article is based out of.
- Other articles used throughout the article to understand various concepts better:
- SetupTools Documentation - https://setuptools.pypa.io/en/latest/index.html
- Type Checking with MyPy - https://realpython.com/lessons/type-checking-mypy/#:~:text=%E2%80%9CMypy%20is%20an%20optional%20static,background%20on%20the%20Mypy%20project
- Test Discover in PyPy - https://docs.pytest.org/en/stable/explanation/goodpractices.html#test-discovery
- Grouping multiple tests in a class - https://docs.pytest.org/en/stable/getting-started.html#group-multiple-tests-in-a-class
- Understanding grouping of tests in a class - https://stackoverflow.com/questions/20277058/py-test-does-not-find-tests-under-a-class#:~:text=test%20does%20not%20find%20tests%20under%20a%20class,-Ask%20Question
- Testing unittest based classes - https://docs.pytest.org/en/7.1.x/how-to/unittest.html
- Change the standard in Test Discovery - https://docs.pytest.org/en/7.1.x/example/pythoncollection.html
- Fixture Scopes - https://betterprogramming.pub/understand-5-scopes-of-pytest-fixtures-1b607b5c19ed
- Understanding the structure of tox configuration file: https://tox.wiki/en/latest/config.html
- Finally my
TDD In Python
course: https://www.youtube.com/watch?v=NAjCDSqxrQ&list=PLVWk3kKbCAAuPPr_eh4KNKdL2hDSNFH3H
Speedy emails, satisfied customers
Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)