An easy and convenient approach to testing your powerful Python projects
- Covers everything you need to test your code in Python
- Easiest and enjoyable approach to learn Python testing
- Write, execute, and understand the result of tests in the unit test framework
- Packed with step-by-step examples and clear explanations
In Detail
Automated testing moves much of the labor of testing off the developer and makes it easier as well as quicker to find bugs and fix them. Automated tests run faster, increase test coverage, and lower costs. However, testing is neither an easy process nor remotely exciting for most developers. But with the right techniques and tools, testing can become a simple and gratifying part of the development process.
With this helpful guide - from an expert - in your hand, testing will not be a tiresome topic for you anymore. You will learn how to test your Python projects in the easiest way, making other parts of the development process easier and more enjoyable.
This book covers the tools and techniques of automated testing and test-driven development. Starting from the very basics, the chapters introduce new tools and techniques in simple, accessible language with step-by-step examples. You will explore how to make testing easier and more accurate with Python's doctest module and learn test-driven development using the unittest framework. You will also learn how to keep your units separate from each other and discover a simple and easy way to integrate Mocker and unittest. Next, we cover integration testing and web application testing.
Automated testing gives developers better feedback, faster and more often. Bugs get found sooner and fixed better, with less effort. By the end of this book, you will have all of the skills needed to benefit from automated testing.
What you will learn from this book
- Make testing easy and convenient with Python's doctest module, which lets you put your tests right into your doc strings
- Drive development using unit testing and learn how it can make the process quicker
- Explore the assorted features Mocker provides to help you keep units separate from each other and customize it to suit your needs
- Embed your tests in a controlled and temporary environment using test fixtures
- Simplify the integration of unittest and Mocker using Python Mocker's MockerTestCase
- Automatically find and execute tests using Nose - a unittest-based testing framework for Python that makes writing and running tests easier
- Write tests for web applications using Twill and integrate it's capabilities as a library into Python testing code
- Create integration tests and run them to see if your programs work correctly in concert with each other
- Run Nose automatically when your version control software detects changes in the source code
- Set up the Buildbot automated continuous integration system to run your tests repeatedly over many different environments
Chapter 1 introduces Python test-driven development and various testing methods.
Chapter 2 covers the doctest tool and teaches you how to use it.
Chapter 3 introduces the ideas of unit testing and test-driven development, and applies doctest to create unit tests.
Chapter 4 covers mock objects and the Python Mocker tool.
Chapter 5 introduces the unittest framework and discusses when it is preferred over doctest.
Chapter 6 introduces the Nose test runner, and discusses project organization.
Chapter 7 walks through a complete test-driven development process.
Chapter 8 applies the knowledge gained from previous chapters to web applications, and introduces the Twill tool.
Chapter 9 teaches how to build up from unit tests to tests of a complete software system.
Chapter 10 introduces code coverage and continuous integration, and teaches how to tie automated testing into version control systems.
Approach
The book begins with the very foundations of automated testing, and expands on them until the best-practice tools and techniques are fully covered. New concepts are illustrated with step-by-step hands-on exercises. Testing will be easier and more enjoyable with this beginner's guide.
Who this book is written for
If you are a Python developer and want to write tests for your applications, this book will get you started and show you the easiest way to learn testing.
You need to have sound Python programming knowledge to follow along. An awareness of software testing would be good, but no formal knowledge of testing is expected nor do you need to have any knowledge of the libraries discussed in the book.