<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>pytest - DataTalks.RU. Data Engineering / DWH / Data Pipeline</title>
	<atom:link href="https://datatalks.ru/tag/pytest/feed/" rel="self" type="application/rss+xml" />
	<link>https://datatalks.ru/tag/pytest/</link>
	<description>RoadMap для инженера данных. Дорожная карта по инструментам Data Engineer</description>
	<lastBuildDate>Mon, 19 Jan 2026 20:24:53 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://datatalks.ru/wp-content/uploads/2024/12/cropped-logo_datatalks-32x32.png</url>
	<title>pytest - DataTalks.RU. Data Engineering / DWH / Data Pipeline</title>
	<link>https://datatalks.ru/tag/pytest/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Pytest Tutorial: тесты, fixture, mark, parametrize</title>
		<link>https://datatalks.ru/pytest-fixture-parametrization-data-engineer/</link>
					<comments>https://datatalks.ru/pytest-fixture-parametrization-data-engineer/#respond</comments>
		
		<dc:creator><![CDATA[Data Engineer (Admin)]]></dc:creator>
		<pubDate>Sun, 18 Jan 2026 19:47:03 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[pytest]]></category>
		<guid isPermaLink="false">https://datatalks.ru/?p=2808</guid>

					<description><![CDATA[<p>Основные термины и понятия Pytest Test / Test Case (тест / тест-кейс) &#8212; Одиночная проверка поведения кода: функция, имя которой начинается с test_. Pytest автоматически обнаруживает и запускает такие тесты. Assertion (ассерция / утверждение) &#8212; Проверка, выраженная через стандартный Python-оператор assert. Pytest делает assert-интроспекцию — показывает подробный разбор выражения при ошибке, что упрощает диагностику. Assertion Introspection (интроспекция [&#8230;]</p>
<p>Сообщение <a href="https://datatalks.ru/pytest-fixture-parametrization-data-engineer/">Pytest Tutorial: тесты, fixture, mark, parametrize</a> появились сначала на <a href="https://datatalks.ru">DataTalks.RU. Data Engineering / DWH / Data Pipeline</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Основные термины и понятия Pytest</h1>
<p><strong>Test / Test Case (тест / тест-кейс)</strong> &#8212; Одиночная проверка поведения кода: функция, имя которой начинается с <code>test_</code>. Pytest автоматически обнаруживает и запускает такие тесты.</p>
<p><strong>Assertion (ассерция / утверждение)</strong> &#8212; Проверка, выраженная через <strong>стандартный Python-оператор</strong> <code>assert</code>. Pytest делает <code>assert</code>-интроспекцию — показывает подробный разбор выражения при ошибке, что упрощает диагностику.</p>
<p><strong>Assertion Introspection (интроспекция ассерций)</strong> &#8212; Особенность Pytest: при провале <code>assert</code> показываются подробности выражения (значения левой/правой части, вложенные выражения и т.д.).</p>
<p><strong>Fixture (фикстура)</strong> &#8212; Функция, отмеченная декоратором <code>@pytest.fixture</code>, которая подготавливает окружение (данные, подключения и т. д.) для тестов и/или выполняет очистку после. Тесты “запрашивают” фикстуру через аргументы функций.</p>
<p><strong>Scope (область действия) фикстуры</strong> может быть:</p>
<ul>
<li>function — на каждый тест,</li>
<li>class — на класс,</li>
<li>module — на модуль,</li>
<li>package — на пакет,</li>
<li>session — на весь прогон.</li>
</ul>
<p><strong>Marker (маркер)</strong> &#8212; Метаданные, которыми помечаются тесты для отнесения их к категориям/группам (например, <code>@pytest.mark.slow</code>, <code>@pytest.mark.integration</code>), а также изменения их поведения. Маркеры упрощают выборку тестов при запуске с помощью опции <code>-m</code>.</p>
<p><strong>Mock</strong> &#8212; объект-заглушка, который заменяет реальный объект в тестах и позволяет проверять, как он использовался. <strong>Monkeypatch</strong> &#8212; фикстура <code>pytest</code> для временного изменения атрибутов, словарей или <code>environment variables</code>. Используется для изоляции тестируемого кода от его зависимостей (например, подмена запроса к <code>API</code> возвратом готовых данных).</p>
<p><strong>Parametrization (параметризация)</strong> &#8212; Механизм запуска одного теста с разными наборами аргументов, обычно через декоратор <code>@pytest.mark.parametrize</code>. Это позволяет покрывать больше сценариев без копирования кода.</p>
<p><strong>Skip / Skipif (пропуск теста)</strong> &#8212; Маркер или вызов (<code>pytest.mark.skip</code>, <code>pytest.mark.skipif</code>) для пропуска теста в определённых условиях (например, на неподходящей платформе).</p>
<p><strong>XFail / Expected Failure (ожидаемо падающий тест)</strong> &#8212; Маркер <code>pytest.mark.xfail</code> для тестов, которые ожидаемо должны упасть (например, из-за известной ошибки). Их падение не считается ошибкой прогонки.</p>
<p><strong>Plugins (плагины)</strong> &#8212; Расширения, которые добавляют Pytest-функциональность (например, отчеты, параллельный запуск, интеграции). Pytest имеет богатую экосистему плагинов.<br />
Популярные плагины:</p>
<ul>
<li><code>pytest-cov</code>: интеграция с <code>coverage.py</code> для анализа покрытия кода</li>
<li><code>pytest-xdist</code>: для параллельного запуска тестов</li>
<li><code>pytest-django</code>: для тестирования <strong>Django-приложений</strong></li>
<li><code>pytest-asyncio</code>: для тестирования <strong>asyncio-кода</strong></li>
</ul>
<p><strong>Conftest.py</strong> &#8212; Специальный файл Python, который используется для хранения общих фикстур, плагинов и хуков для всего проекта. Фикстуры и плагины, объявленные в <code>conftest.py</code>, автоматически обнаруживаются и становятся доступными во всех тестах того же <code>package</code> и его подпакетах. Это центральное место для общей конфигурации.</p>
<p><strong>Hook (хук)</strong> &#8212; Функция, которая вызывается в определенные моменты выполнения тестов (например, во время сбора или запуска тестов) и позволяет кастомизировать поведение pytest. Используется для написания плагинов или изменения стандартного поведения pytest (например, добавление своих действий перед запуском всех тестов).</p>
<p><strong>Test Suite (набор тестов)</strong> &#8212; Группа тестов (обычно множество функций/файлов), которые выполняются вместе.</p>
<p><strong>Test Collection (сбор тестов)</strong> &#8212; Процесс, когда Pytest сканирует каталоги и файлы, находит тесты и готовит их к выполнению.</p>
<p><strong>Test Report (отчет о тестах)</strong> &#8212; Итоговый вывод после выполнения тестов, включающий количество прошедших, проваленных, пропущенных и <code>xfail</code>-тестов.</p>
<h1>Тестовый проект PyTest на GitHub</h1>
<p><a href="https://github.com/ivanshamaev/pytest-tutorial" target="_blank" rel="noopener">https://github.com/ivanshamaev/pytest-tutorial</a></p>
<h1>Курсы pytest и материалы</h1>
<h2>YouTube</h2>
<ul>
<li><a href="https://www.youtube.com/playlist?list=PLeLN0qH0-mCVdHgdjlnKTl4jKuJgCK-4b" target="_blank" rel="noopener">Pytest Курс</a></li>
<li><a href="https://www.youtube.com/watch?v=J_Dfbr6tIKU" target="_blank" rel="noopener">Pytest. Необходимый минимум</a></li>
</ul>
<p>Сообщение <a href="https://datatalks.ru/pytest-fixture-parametrization-data-engineer/">Pytest Tutorial: тесты, fixture, mark, parametrize</a> появились сначала на <a href="https://datatalks.ru">DataTalks.RU. Data Engineering / DWH / Data Pipeline</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://datatalks.ru/pytest-fixture-parametrization-data-engineer/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
