Skills Plugins MCP Prompt Model 博客 我的中心

pytest-skill

Generates production-grade pytest tests in Python with fixtures, parametrize, markers, mocking, and conftest patterns. Use when user mentions "pytest", "conftest", "@pytest.fixture", "@pytest.mark", "Python test". Triggers on: "pytest", "conftest", "Python test", "parametrize", "Python unit test".

DeepseekModel Curated skill Quality Excellent · 78 v1.0.0

Get

https://deepseekmodel.com/api/download.php?id=lambdatest-agent-skills-pytest-skill-skill-md&format=skill
Download .skill Standard format with system_prompt and model_config, ready for any agent framework
The actual content of the system_prompt field in the .skill file.
name pytest-skill description Generates production-grade pytest tests in Python with fixtures, parametrize, markers, mocking, and conftest patterns. Use when user mentions "pytest", "conftest", "@pytest.fixture", "@pytest.mark", "Python test". Triggers on: "pytest", "conftest", "Python test", "parametrize", "Python unit test". languages ["Python"] category unit-testing license MIT metadata {"author":"TestMu AI","version":"1.0"} Pytest Testing Skill Core Patterns Basic Test import pytest def test_addition (): assert 2 + 3 == 5 def test_exception (): with pytest.raises(ValueError, match = "invalid" ): int ( "not_a_number" ) class TestCalculator : def test_add ( self ): calc = Calculator() assert calc.add( 2 , 3 ) == 5 def test_divide_by_zero ( self ): with pytest.raises(ZeroDivisionError): Calculator().divide( 10 , 0 ) Fixtures @pytest.fixture def calculator (): return Calculator() @pytest.fixture def db_connection (): conn = Database.connect( "test_db" ) yield conn # teardown after yield conn.rollback() conn.close() @pytest.fixture( scope= "module" ) def api_client (): client = APIClient(base_url= "http://localhost:8000" ) yield client client.logout() # conftest.py - shared fixtures @pytest.fixture( autouse= True ) def reset_state (): State.reset() yield State.cleanup() # Usage def test_add ( calculator ): assert calculator.add( 2 , 3 ) == 5 Parametrize @pytest.mark.parametrize( "input,expected" , [ ( "hello" , 5 ), ( "" , 0 ), ( "pytest" , 6 ), ] ) def test_string_length ( input , expected ): assert len ( input ) == expected @pytest.mark.parametrize( "a,b,expected" , [ ( 2 , 3 , 5 ), ( - 1 , 1 , 0 ), ( 0 , 0 , 0 ), ] ) def test_add ( calculator, a, b, expected ): assert calculator.add(a, b) == expected Markers @pytest.mark.slow def test_large_dataset (): ... @pytest.mark.skip( reason= "Not implemented" ) def test_future_feature (): ... @pytest.mark.skipif( sys.platform == "win32" , reason= "Unix only" ) def test_unix_permissions (): ... @pytest.mark.xfail( reason= "Known bug #123" ) def test_known_bug (): ... Mocking from unittest.mock import patch, MagicMock def test_send_email ( mocker ): mock_smtp = mocker.patch( "myapp.email.smtplib.SMTP" ) send_welcome_email( "user@test.com" ) mock_smtp.return_value.sendmail.assert_called_once() def test_api_call ( mocker ): mock_response = mocker.Mock() mock_response.status_code = 200 mock_response.json.return_value = { "users" : [{ "name" : "Alice" }]} mocker.patch( "myapp.service.requests.get" , return_value=mock_response) users = get_users() assert len (users) == 1 @patch( "myapp.service.database" ) def test_save_user ( mock_db ): mock_db.save.return_value = True assert save_user({ "name" : "Alice" }) is True mock_db.save.assert_called_once() Assertions assert x == y assert x != y assert x in collection assert isinstance (obj, MyClass) assert 0.1 + 0.2 == pytest.approx( 0.3 ) with pytest.raises(ValueError) as exc_info: raise ValueError( "bad" ) assert "bad" in str (exc_info.value) Anti-Patterns Bad Good Why self.assertEqual() assert x == y pytest rewrites give better output Setup in __init__ @pytest.fixture Lifecycle management Global state Fixture with yield Proper cleanup Huge test functions Small focused tests Easier debugging Quick Reference Task Command Run all pytest Run file pytest tests/test_login.py Run specific pytest tests/test_login.py::test_login_success By marker pytest -m slow By keyword pytest -k "login and not invalid" Verbose pytest -v Stop first fail pytest -x Last failed pytest --lf Coverage pytest --cov=myapp --cov-report=html Parallel pytest -n auto (pytest-xdist) pyproject.toml [tool.pytest.ini_options] testpaths = [ "tests" ] markers = [ "slow: slow tests" , "integration: integration tests" ] addopts = "-v --tb=short" Deep Patterns For production-grade patterns, see reference/playbook.md : Section What's Inside §1 Config pytest.ini + pyproject.toml with markers, coverage §2 Fixtures Scoping, factories, teardown, autouse, tmp_path §3 Parametrize Basic, with IDs, cartesian, indirect §4 Mocking pytest-mock, monkeypatch, spies, env vars §5 Async pytest-asyncio, async fixtures, async client §6 Exceptions pytest.raises(match=), warnings §7 Markers & Plugins Custom markers, collection hooks §8 Class-Based Nested classes, autouse setup §9 CI/CD GitHub Actions matrix, coverage gates §10 Debugging Table 10 common problems with fixes §11 Best Practices 15-item production checklist
Keywords that activate this skill. Click one to copy it.

This skill does not provide trigger words.

The downloaded .skill package contains the following fields.
Field Description
formatFormat tag (skill/v1)
skill_idUnique skill ID
nameSkill name
versionVersion
descriptionDescription
categoryCategories (array)
trigger_wordsTrigger words
tagsTags
sourceSource
source_urlSource URL (this page)
exported_atExported at (set per download)
system_promptSystem prompt body
model_configModel config: provider / model / temperature / max_tokens / top_p
examplesExamples
install_guideImport guide for Coze / Dify / Claude / custom frameworks
The same skill can be exported in different platform formats.
.skill Standard format with system_prompt and model_config, ready for any agent framework Download
.skillpro Enhanced format with scripts, tools, dependencies and hooks Download
.json Plain JSON export with system_prompt and model parameters only Download
Coze Markdown with frontmatter, for Coze platform import Download
Dify Dify DSL, import directly after creating an app Download

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

验证码 --

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。