UNLIMITED
10: Test Case Design using Given-When-Then from BDD: It doesn’t matter if you are using pytest, unittest, nose, or something completely different, this episode will help you write better tests. by Test and CodeUNLIMITED
147: Testing Single File Python Applications/Scripts with pytest and coverage
FromTest and Code
UNLIMITED
147: Testing Single File Python Applications/Scripts with pytest and coverage
FromTest and Code
ratings:
Length:
12 minutes
Released:
Mar 5, 2021
Format:
Podcast episode
Description
Have you ever written a single file Python application or script?
Have you written tests for it?
Do you check code coverage?
This is the topic of this weeks episode, spurred on by a listener question.
The questions:
* For single file scripts, I'd like to have the test code included right there in the file. Can I do that with pytest?
* If I can, can I use code coverage on it?
The example code discussed in the episode: script.py
```
def foo():
return 5
def main():
x = foo()
print(x)
if name == 'main': # pragma: no cover
main()
test code
To test:
pip install pytest
pytest script.py
To test with coverage:
put this file (script.py) in a directory by itself, say foo
then from the parent directory of foo:
pip install pytest-cov
pytest --cov=foo foo/script.py
To show missing lines
pytest --cov=foo --cov-report=term-missing foo/script.py
def test_foo():
assert foo() == 5
def test_main(capsys):
main()
captured = capsys.readouterr()
assert captured.out == "5\n"
```
Have you written tests for it?
Do you check code coverage?
This is the topic of this weeks episode, spurred on by a listener question.
The questions:
* For single file scripts, I'd like to have the test code included right there in the file. Can I do that with pytest?
* If I can, can I use code coverage on it?
The example code discussed in the episode: script.py
```
def foo():
return 5
def main():
x = foo()
print(x)
if name == 'main': # pragma: no cover
main()
test code
To test:
pip install pytest
pytest script.py
To test with coverage:
put this file (script.py) in a directory by itself, say foo
then from the parent directory of foo:
pip install pytest-cov
pytest --cov=foo foo/script.py
To show missing lines
pytest --cov=foo --cov-report=term-missing foo/script.py
def test_foo():
assert foo() == 5
def test_main(capsys):
main()
captured = capsys.readouterr()
assert captured.out == "5\n"
```
Released:
Mar 5, 2021
Format:
Podcast episode
Titles in the series (100)
- 21 min listen