diff options
Diffstat (limited to 'doc/testing.txt')
-rw-r--r-- | doc/testing.txt | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/doc/testing.txt b/doc/testing.txt deleted file mode 100644 index 3ec7c97..0000000 --- a/doc/testing.txt +++ /dev/null @@ -1,112 +0,0 @@ -Automated testing -================= - -Introduction ------------- -The bash-completion package contains an automated test suite. Running the -tests should help verifying that bash-completion works as expected. The tests -are also very helpful in uncovering software regressions at an early stage. - -The test suite is written in Python, using https://pytest.org/[pytest] -and https://pexpect.readthedocs.io/[pexpect]. - - -Coding Style Guide ------------------- - -For the Python part, all of it is formatted using -https://github.com/ambv/black[Black], and we also run -https://flake8.pycqa.org/[Flake8] on it. - - -Installing dependencies ------------------------ - -Installing dependencies should be easy using your local package manager or -`pip`. Python 3.4 or newer is required, and the rest of the Python package -dependencies are specified in the `test/requirements.txt` file. If using `pip`, -this file can be fed directly to it, e.g. like: ------------------------------------- -pip install -r test/requirements.txt ------------------------------------- - - -Debian/Ubuntu -~~~~~~~~~~~~~ - -On Debian/Ubuntu you can use `apt-get`: -------------- -sudo apt-get install python3-pytest python3-pexpect -------------- -This should also install the necessary dependencies. Only Debian testing -(buster) and Ubuntu 18.10 (cosmic) and later have an appropriate version -of pytest in the repositories. - -Fedora/RHEL/CentOS -~~~~~~~~~~~~~~~~~~ - -On Fedora and RHEL/CentOS (with EPEL) you can try `yum` or `dnf`: -------------- -sudo yum install python3-pytest python3-pexpect -------------- -This should also install the necessary dependencies. At time of writing, only -Fedora 29 comes with recent enough pytest. - - - -Structure ---------- - -Tests are in the `t/` subdirectory, with `t/test_\*.py` being completion -tests, and `t/unit/test_unit_\*.py` unit tests. - - -Running the tests ------------------ - -Tests are run by calling `pytest` on the desired test directories or -individual files, for example in the project root directory: ------------------------ -pytest test/t ------------------------ - -See `test/docker/docker-script.sh` for how and what we run and test in CI. - - -Specifying bash binary -~~~~~~~~~~~~~~~~~~~~~~ - -The test suite standard uses `bash` as found in PATH. Export the -`bashcomp_bash` environment variable with a path to another bash executable if -you want to test against something else. - - -Maintenance ------------ - - -Adding a completion test -~~~~~~~~~~~~~~~~~~~~~~~~ - -You can run `cd test && ./generate cmd` to add a test for the `cmd` -command. Additional arguments will be passed to the first generated test case. -This will add the `test/t/test_cmd.py` file with a very basic test, and add it -to `test/t/Makefile.am`. Add additional tests to the generated file. - -Rationale ---------- - - -Naming conventions -~~~~~~~~~~~~~~~~~~ - -Test suite or testsuite -^^^^^^^^^^^^^^^^^^^^^^^ -The primary Wikipedia page is called -https://en.wikipedia.org/wiki/Test_suite[test suite] and not testsuite, so -that's what this document sticks to. - -script/generate -^^^^^^^^^^^^^^^ -The name and location of this code generation script come from Ruby on Rails' -https://en.wikibooks.org/wiki/Ruby_on_Rails/Tools/Generators[script/generate]. |