Testing Grab Framework

Building test environment

Run command:

make bootstrap

Fastest way to run all Grab tests

pytest -n30

Classic way to run tests

Run the commands:

./runtest.py --test-all --backend=mongodb,redis,pyquery

With runtestpy you can choose which set of tests to run. Available runtest.py options:

--test-grab - Grab API tests
--test-spider - Grab::Spider API tests
--test-all - shortcut to run both Grab and Grab::Spider tests
--backend=redis - enable tests of things that work with redis
--backend=mysql - enable tests of things that work with mysql
--backend=mongodb - enable tests of things that work with mongo
--backend=pyquery - enable tests of things that work with pyquery

If you want to run specific test cases then use the -t option. For example:

./runtest.py -t test.grab_api

Github Testing

The Grab project is configured to run the full set of tests for each new commit placed into the project repository. You can see the status of a recent commit and the status of all previous commits here: https://github.com/lorien/grab/actions

Test Coverage

To see test coverage just run full set of tests through pytest

pytest -n30 -x --cov grab --cov-report term-missing

You can use shortcut:

make pytest

The Grab project is configured to submit coverage statistics to the coveralls.io service after each test session is completed by travis-ci. You can see the coverage history at this URL: https://coveralls.io/github/lorien/grab

Linters

Run with:

make check

That will run mypy, pylint and flake8 linters.