In this chapter, we saw how we can keep our test suite effective and comfortable as the complexity of our application and the size of our test suites grow. We saw how tests can be organized into different categories that could be run at different times, and also saw how we can have multiple different test suites in a single project, each serving its own purpose.
In general, over the previous four chapters, we learned how to structure our testing strategy and how testing can help us design robust applications. We also saw how Python has everything we need built in already through the unittest module.
But as our test suite grows and becomes bigger, there are utilities, patterns, and features that we would have to implement on our own in the unittest module. That's why, over the course of many years, many frameworks have been designed for testing by the Python community. In the next chapter, we are going to introduce pytest, the most widespread framework for testing Python applications...