Зміст курсу
Python Advanced Concepts
Python Advanced Concepts
Pytest Framework
Installation
First things first, we need to install Pytest. This process is straightforward, thanks to Python’s package manager, pip. Open your command line or terminal, and enter the following command:
Always better to do it in the project's virtual environment.
Syntax Explanation
One of the reasons why Pytest is so beloved in the Python community is its simple and easy-to-underwrite syntax. Unlike some other testing frameworks, Pytest allows you to write test codes in a very human-readable way. Here's a quick rundown:
- Test Files: pytest recognizes files that begin with test_ or end with _test.py;
- Test Functions: functions that start with test_ inside these files are automatically identified as test functions by pytest;
- Assertions: use Python’s built-in
assert
statement to verify that specific conditions are met.
Code Samples
Let's apply what we've learned with a simple example. Suppose we have a function called add that adds two numbers. Here’s how we might write a test for it using Pytest:
This code sample shows two tests: one for numbers and another for strings. The assert statements check whether the function behaves as expected.
How to Run Tests and Interpret Results
Running tests with Pytest is as simple as it gets. Navigate to the directory containing your test file and run the following command:
Pytest will automatically discover and run all the tests in the directory, displaying a report that shows whether each test passed or failed. Here's what you might see:
Each dot represents a passing test. Pytest provides detailed output for failing tests, including the line number and the reason for the failure, making it easy to diagnose and fix issues.
Interpreting the Results
- Passed (.): the test ran successfully, and all assertions were
True
; - Failed (F): the test contains assertions that were not
True
, indicating a problem; - Skipped (s): the test was skipped, perhaps due to a configured condition or dependency.
Дякуємо за ваш відгук!