Getting Started¶
Installing haas
¶
haas
can be easily installed using pip
:
$ pip install haas
For development versions, the source is available from the GitHub
repository. To install haas from GitHub, clone the repository and
install using pip
:
$ git clone https://github.com/sjagoe/haas.git
$ cd haas
$ python setup.py sdist
$ pip install dist/haas*.egg
Using haas
¶
To use the basic test discovery feature of haas
, simply invoke it at
the top-level of a project; this should be enough to detect and run all
unit tests:
$ haas
......................................................................
.................................
----------------------------------------------------------------------
Ran 103 tests in 0.116s
OK
haas
supports some of the same options as Python’s unittest
runner, with one major difference: the starting directory (or package
name) for test discovery is simply specified on the command line:
$ haas haas/tests
......................................................................
.................................
----------------------------------------------------------------------
Ran 103 tests in 0.116s
OK
$ haas haas.tests
......................................................................
.................................
----------------------------------------------------------------------
Ran 103 tests in 0.116s
OK
For the currently available options, use the --help
option:
$ haas --help
usage: haas [-h] [-v | -q] [-f] [-b] [-p PATTERN]
[-t TOP_LEVEL_DIRECTORY]
[--log-level {critical,fatal,error,warning,info,debug}]
[start]
positional arguments:
start Directory or dotted package/module name to start
searching for tests
optional arguments:
-h, --help show this help message and exit
-v, --verbose Verbose output
-q, --quiet Quiet output
-f, --failfast Stop on first fail or error
-b, --buffer Buffer stdout and stderr during tests
-p PATTERN, --pattern PATTERN
Pattern to match tests ('test*.py' default)
-t TOP_LEVEL_DIRECTORY, --top-level-directory TOP_LEVEL_DIRECTORY
Top level directory of project (defaults to start
directory)
--log-level {critical,fatal,error,warning,info,debug}
Log level for haas logging
Discovering tests by a test name only¶
haas
is able to discover a subset of the tests when just a test name
(or any sub-section of a dotted module name) is given on the command
line.
For example, to run all test methods called test_method
, the
following would work:
$ haas -v test_method
test_method (haas.tests._test_cases.TestCase) ... ok
test_method (haas.tests.test_loader.TestCaseSubclass) ... ok
test_method (haas.tests.test_discoverer.FilterTestCase) ... ok
----------------------------------------------------------------------
Ran 3 tests in 0.000s
OK
Note that three tests in three different modules have been run. The
string test_method
is matched at any point in the name
<package>.<module>.<class>.<method>
and across all loadable tests in
the project. To restrict this to a single test, we can use the class
name as an additional matching parameter:
$ haas -v FilterTestCase.test_method
test_method (haas.tests.test_discoverer.FilterTestCase) ... ok
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK