Update "TESTS.md" to show that there is a version of "pytest" for both Python2 and Python3 (#506)

* Update TESTS.md

Provides information on the different types of "pytest" available, as well as switched "py.test" to "pytest", as recommended here (https://github.com/pytest-dev/pytest/issues/1629#issue-161422224).

* Fixed a typo.

* Small edit.

* Update TESTS.md

Cleaned it up, addressed what user "N-Parsons" commented on, fixed some errors, and added new information.

* Small Change to "PDB" Section.
This commit is contained in:
Kyle Nied
2017-10-24 17:13:34 -04:00
committed by Nathan Parsons
parent b3ba31de05
commit 6b7c4444a7

View File

@@ -4,14 +4,38 @@ We recommend you install [pytest](http://pytest.org/latest/) and
[pytest-cache](http://pythonhosted.org/pytest-cache/). `pytest` is a testing
tool that will give you more flexibility over running your unit tests.
If you want to install `pytest` for Python 2, then use `pip`.
```bash
pip install pytest pytest-cache
```
If you instead want the version of `pytest` for Python 3, then use `pip3`.
```bash
pip3 install pytest pytest-cache
```
If you get a `command not found` response from your system, you can find a
tutorial on how to install `pip`
[here](https://pip.pypa.io/en/stable/installing/).
**Note:** Whichever version of `pytest` you install last will be the default one used whenever `pytest` is executed, regardless of whether you have installed both versions.
If you want to check what the default version of `pytest` being used is, run the following:
```bash
pytest --version
```
If you have either version of `pytest` installed and you want to specifically run one of the versions, you can run that version by using `python` with the `-m` flag.
For example, you could run the Python 3 version of pytest like so:
```bash
$ python3 -m pytest --version
This is pytest version 3.2.3, imported from /usr/local/lib/python3.5/dist-packages/pytest.py
```
If you choose not to install `pytest`, you can still run tests individually and
skip the rest of this tutorial:
@@ -29,7 +53,7 @@ an example here), place yourself in the directory where that exercise has been
fetched and run:
```bash
py.test bob_test.py
pytest bob_test.py
```
**Note:** To run the tests you need to pass the name of the testsuite file to
@@ -56,7 +80,7 @@ The above will run all the tests, whether they fail or not. If you'd rather stop
the process and exit on the first failure, run:
```bash
py.test -x bob_test.py
pytest -x bob_test.py
```
### Failed Tests First
@@ -64,14 +88,14 @@ py.test -x bob_test.py
`pytest-cache` remembers which tests failed, and can run those tests first.
```bash
py.test --ff bob_test.py
pytest --ff bob_test.py
```
### Running All Tests for All Exercises
```bash
cd exercism/python/
py.test
pytest
```
## Recommended Workflow
@@ -80,7 +104,7 @@ We recommend you run this command while working on exercises.
```bash
cd exercism/python/bob
py.test -x --ff bob_test.py
pytest -x --ff bob_test.py
```
## PDB
@@ -89,28 +113,28 @@ Will drop you into the python debugger when a test fails. To learn how to use
pdb, check out the
[documentation](https://docs.python.org/3/library/pdb.html#debugger-commands).
You may also be interested in watching [Clayton Parker's "So you think you can
pdb?" PyCon 2015 talk](https://www.youtube.com/watch?v=P0pIW5tJrRM)
```bash
py.test --pdb bob_test.py
pytest --pdb bob_test.py
```
You may also be interested in watching [Clayton Parker's "So you think you can
pdb?" PyCon 2015 talk](https://www.youtube.com/watch?v=P0pIW5tJrRM).
## PEP8
PEP8 is the [Style Guide for Python
Code](https://www.python.org/dev/peps/pep-0008/). If you would like to test for
compliance to the style guide, install
[pytest-pep8](https://pypi.python.org/pypi/pytest-pep8)
[pytest-pep8](https://pypi.python.org/pypi/pytest-pep8).
```bash
pip install pytest-pep8
```
and add the pep8 flag to your command
Then, just add the `--pep8` flag to your command
```bash
py.test --pep8 bob_test.py
pytest --pep8 bob_test.py
```
Read the [pytest documentation](http://pytest.org/latest/contents.html#toc) and