UI-level acceptance test framework. Full documentation available on ReadTheDocs.
As of 2022-02-18, bok-choy is deprecated. All tests written using bok-choy have either been removed or are slated to be removed soon. Please do not write new tests using bok-choy! In the near future, this repository will be archived.
A Python framework for writing robust Selenium tests.
As Bok Choy is a Python framework, you first need to install Python. If you’re running Linux or Mac OS X, you probably already have it installed. We recommend that you use pip to install your Python packages:
pip install bok_choy
Note
On Ubuntu Linux 18.04 you might have to install firefox-geckodriver (for Firefox) and/or chromium-chomedriver (for Chromium), especially if you hit the following Error when running bok_choy:
bok_choy.promise.BrokenPromise: Promise not satisfied: Browser is instantiated successfully.
To run the test suite for bok-choy itself:
- Install Firefox; as of this writing, the current version 59.0.1 works with the latest selenium Python package (3.11.0)
- Install phantomjs
- Create a virtualenv which uses Python 3.8
- With that virtualenv activated, run
pip install -r requirements/ci.txt
to install the tox testing tool and its dependencies - Run
tox -e py38
. If you want to run the tests in parallel, add the desired number of worker processes liketox -e py38 -- -n 5
ortox -e py38 -- -n auto
. - To test and build the documentation, run
tox -e doc
- To run an individual test, run
py.test tests/<test file>::<test class>::<test name>
The code in this repository is licensed under the Apache License, Version 2.0, unless otherwise noted.
Please see LICENSE.txt
for details.
Contributions are very welcome. The easiest way is to fork this repo, and then make a pull request from your fork. The first time you make a pull request, you may be asked to sign a Contributor Agreement.
Please do not report security issues in public. Please email [email protected]
You can discuss this code on the edx-code Google Group or in the testing channel on the Open edX Slack.