Skills Plugins MCP Prompt Model 博客 我的中心
開発 #python

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 キュレーション済みスキル 品質 優秀 · 78 v1.0.0

取得

https://deepseekmodel.com/api/download.php?id=lambdatest-agent-skills-pytest-skill-skill-md&format=skill
ダウンロード .skill 標準形式。system_prompt と model_config を収録し、任意の Agent で利用可能
.skill ファイルの system_prompt フィールドの実際の内容。
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
このスキルを起動するキーワード。クリックでコピーできます。

このスキルにはトリガーワードがありません。

ダウンロードした .skill に含まれるフィールド。
フィールド 説明
formatフォーマット識別子(skill/v1)
skill_idスキル固有 ID
nameスキル名
versionバージョン
description説明
categoryカテゴリ(配列)
trigger_wordsトリガーワード
tagsタグ
sourceソース
source_urlソース URL(本ページ)
exported_atエクスポート日時(ダウンロード毎)
system_promptシステムプロンプト本文
model_configモデル設定:provider / model / temperature / max_tokens / top_p
examplesサンプル
install_guide各プラットフォームの導入説明(Coze / Dify / Claude / カスタム)
同じスキルを各プラットフォーム形式で出力できます。
.skill 標準形式。system_prompt と model_config を収録し、任意の Agent で利用可能 ダウンロード
.skillpro 拡張形式。scripts / tools / dependencies / hooks を含む ダウンロード
.json 純粋な JSON 出力。system_prompt とモデル設定のみ ダウンロード
Coze frontmatter 付き Markdown。Coze へのインポート用 ダウンロード
Dify Dify DSL。アプリ作成後にそのままインポート ダウンロード

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

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

验证码 --

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

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