Mastering PyCharm Transcripts
Chapter: Unit testing
Lecture: Concepts: Coverage
0:01 Code coverage goes hand in hand with unit testing,
0:05 one validates the other, it's great to have unit test,
0:08 but to say your test passed, well that only has meaning
0:11 if you have significant code coverage on your application.
0:14 So we saw that code coverage is a measure
0:17 used to describe the degree where the source code of the program
0:20 is tested by a particular set of tests.
0:23 To do this in PyCharm, it's super easy
0:26 there's a little button right there.
0:28 So you can just click that or sometimes depending on how your tests are set up
0:32 you can right click and say run this with coverage.
0:35 So this is really great, and then you get some output,
0:40 however, the first time you try it on a particular project,
0:43 it might not work, it might not have coverage.py installed
0:48 so that's super easy to do, pip install coverage.py
0:51 or just click that little button and a little hyperlink right there,
0:55 and it will install it for you.
0:57 Then click the button again and you'll run it with coverage.
1:00 That results in some code coverage results coming out,
1:03 chances are very good that you'll have
1:06 close to 100% coverage of your test,
1:08 that doesn't tell you anything, that just means the tests were run,
1:11 you want to look at the subject under test,
1:13 so in this case the thing that is really important is core.py
1:16 and notice it's 93% covered and we have two tests,
1:20 these are the happy path tests,
1:22 and what we didn't really cover in this particular stage here
1:25 where we took the screenshot, is we didn't test the error handling
1:28 so there's like 7% of error handling just not covered,
1:32 mostly the error handling altogether set which represents 7%.
1:35 But notice what we have on the right a kind of tabular view
1:39 and then over in the projects,
1:41 we also have the coverage right in the project view,
1:44 that's really actually super cool,
1:47 so we have 93% of lines covered here
1:50 and you can see over there as well.
1:53 However, the real value, one of the real cool features that makes it really useful
1:58 is the results also show up in the editor,
2:01 so here you can see this is greenish,
2:04 I'm not sure what it comes out in the video after processing,
2:07 but it's a slight, slight green, it's very subtle
2:09 but that means that function, every bit of it
2:12 was tested by our test, that's cool.
2:15 However that part right here, that line 34
2:19 that was not tested, neither was that.
2:22 So it's telling us we need some more tests,
2:26 so let's go write some more tests
2:29 and basically if we write two more tests, as we did
2:32 that test the attempt to book a table with the wrong id
2:36 and attempt to double book the table,
2:39 that'll run the two missing lines,
2:41 we did that here and now we have 100% code coverage on our core stuff,
2:45 that's pretty awesome, like I said,
2:47 you don't have to have 100% code coverage
2:49 but for the core essence of your app,
2:51 you should probably have test for that
2:54 and you can really determine what you need to do super easily with PyCharm
2:58 and especially in the editor like this.