Python Testing with Pytest Simple, Rapid, Effective, and Scalable
Uloženo v:
| Hlavní autor: | |
|---|---|
| Médium: | E-kniha |
| Jazyk: | angličtina |
| Vydáno: |
La Vergne
Pragmatic Programmers, LLC, The
2022
|
| Vydání: | 2 |
| ISBN: | 9781680508604, 1680508601 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
Obsah:
- Testing a Simple Python Script -- Testing an Importable Python Script -- Separating Code into src and tests Directories -- Defining the Python Search Path -- Testing requirements.txt-Based Applications -- Review -- Exercises -- What's Next -- 13. Debugging Test Failures -- Adding a New Feature to the Cards Project -- Installing Cards in Editable Mode -- Debugging with pytest Flags -- Re-Running Failed Tests -- Debugging with pdb -- Combining pdb and tox -- Review -- Exercises -- What's Next -- Part III-Booster Rockets -- 14. Third-Party Plugins -- Finding Plugins -- Installing Plugins -- Exploring the Diversity of pytest Plugins -- Running Tests in Parallel -- Randomizing Test Order -- Review -- Exercises -- What's Next -- 15. Building Plugins -- Starting with a Cool Idea -- Building a Local conftest Plugin -- Creating an Installable Plugin -- Testing Plugins with pytester -- Testing Multiple Python and pytest Versions with tox -- Publishing Plugins -- Review -- Exercises -- What's Next -- 16. Advanced Parametrization -- Using Complex Values -- Creating Custom Identifiers -- Parametrizing with Dynamic Values -- Using Multiple Parameters -- Using Indirect Parametrization -- Review -- Exercises -- What's Next -- A1. Virtual Environments -- A2. pip -- Index -- - SYMBOLS - -- - A - -- - B - -- - C - -- - D - -- - E - -- - F - -- - G - -- - H - -- - I - -- - L - -- - M - -- - N - -- - O - -- - P - -- - Q - -- - R - -- - S - -- - T - -- - U - -- - V - -- - W - -- - X - -- - Y -
- Marking Files, Classes, and Parameters -- Using "and," "or," "not," and Parentheses with Markers -- Being Strict with Markers -- Combining Markers with Fixtures -- Listing Markers -- Review -- Exercises -- What's Next -- Part II-Working with Projects -- 7. Strategy -- Determining Test Scope -- Considering Software Architecture -- Evaluating the Features to Test -- Creating Test Cases -- Writing a Test Strategy -- Review -- Exercises -- What's Next -- 8. Configuration Files -- Understanding pytest Configuration Files -- Saving Settings and Flags in pytest.ini -- Using tox.ini, pyproject.toml, or setup.cfg in place of pytest.ini -- Determining a Root Directory and Config File -- Sharing Local Fixtures and Hook Functions with conftest.py -- Avoiding Test File Name Collision -- Review -- Exercises -- What's Next -- 9. Coverage -- Using coverage.py with pytest-cov -- Generating HTML Reports -- Excluding Code from Coverage -- Running Coverage on Tests -- Running Coverage on a Directory -- Running Coverage on a Single File -- Review -- Exercises -- What's Next -- 10. Mocking -- Isolating the Command-Line Interface -- Testing with Typer -- Mocking an Attribute -- Mocking a Class and Methods -- Keeping Mock and Implementation in Sync with Autospec -- Making Sure Functions Are Called Correctly -- Creating Error Conditions -- Testing at Multiple Layers to Avoid Mocking -- Using Plugins to Assist Mocking -- Review -- Exercises -- What's Next -- 11. tox and Continuous Integration -- What Is Continuous Integration? -- Introducing tox -- Setting Up tox -- Running tox -- Testing Multiple Python Versions -- Running tox Environments in Parallel -- Adding a Coverage Report to tox -- Specifying a Minimum Coverage Level -- Passing pytest Parameters Through tox -- Running tox with GitHub Actions -- Review -- Exercises -- What's Next -- 12. Testing Scripts and Applications
- Cover -- Table of Contents -- Acknowledgments -- Preface -- Why pytest? -- Learn pytest While Testing a Sample Application -- How This Book Is Organized -- What You Need to Know -- Why a Second Edition? -- Example Code and Online Resources -- Part I-Primary Power -- 1. Getting Started with pytest -- Installing pytest -- Running pytest -- Review -- Exercises -- What's Next -- 2. Writing Test Functions -- Installing the Sample Application -- Writing Knowledge-Building Tests -- Using assert Statements -- Failing with pytest.fail() and Exceptions -- Writing Assertion Helper Functions -- Testing for Expected Exceptions -- Structuring Test Functions -- Grouping Tests with Classes -- Running a Subset of Tests -- Review -- Exercises -- What's Next -- 3. pytest Fixtures -- Getting Started with Fixtures -- Using Fixtures for Setup and Teardown -- Tracing Fixture Execution with -setup-show -- Specifying Fixture Scope -- Sharing Fixtures through conftest.py -- Finding Where Fixtures Are Defined -- Using Multiple Fixture Levels -- Using Multiple Fixtures per Test or Fixture -- Deciding Fixture Scope Dynamically -- Using autouse for Fixtures That Always Get Used -- Renaming Fixtures -- Review -- Exercises -- What's Next -- 4. Builtin Fixtures -- Using tmp_path and tmp_path_factory -- Using capsys -- Using monkeypatch -- Remaining Builtin Fixtures -- Review -- Exercises -- What's Next -- 5. Parametrization -- Testing Without Parametrize -- Parametrizing Functions -- Parametrizing Fixtures -- Parametrizing with pytest_generate_tests -- Using Keywords to Select Test Cases -- Review -- Exercises -- What's Next -- 6. Markers -- Using Builtin Markers -- Skipping Tests with pytest.mark.skip -- Skipping Tests Conditionally with pytest.mark.skipif -- Expecting Tests to Fail with pytest.mark.xfail -- Selecting Tests with Custom Markers

