BAlto is a Language independent Test Orchestrator
is an unique tool to drive
all your test-runners with one common interface.
Install balto with pipx:
pipx install balto
You should see at the end of the command:
These binaries are now globally available
- balto
- balto-curses
- balto-server
done! ✨ 🌟 ✨
It is highly recommended to avoid installing Balto in either your global Python environment or a virtual environment as it might causes conflicts with some dependencies.
To use it, point balto to a directory containing a .balto.toml
file:
balto tests/
The .balto.toml
file should look like:
name = "Acceptance Test Suite Subprocess"
tool = "pytest"
If you just want to give Balto a try, you can use the --tool
to indicate which tool you want to use. For example:
balto --tool pytest tests
The tool must be one of the supported one, you can see the list here: https://github.com/lothiraldan/litf#compatible-emitters
You can test balto against examples for supported test runners. Clone this repository and launch balto
against one of the examples directories. For pytest
, launch:
balto examples/pytest/
For more help:
balto --help
Balto is composed of two components: the server and the web interface.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. Please report unacceptable behavior to [email protected].
Balto-server is a Python 3.7 project using Asyncio. To build the development version, first create a virtualenv (or equivalent):
virtualenv .venv
source .venv/bin/activate
Install the project in development mode:
pip install -e .
Then start the server:
balto-server --debug examples/pytest/
The server will start on port 8889.
The web interface is a React project communicating with the server using WebSockets. You can start developing on it with these instructions:
cd balto/web_interfaces/balto_react
yarn start
The web interface is then available on http://localhost:3000/ and will connect to the server started before.
Warning: the WebSocket doesn't auto-reconnect yet, sometimes your React modification requires you to reload your browser tab.
Thanks goes to these wonderful people (emoji key):
Boris Feld 💻 🎨 📖 🤔 📢 |
Elias Dorneles 💻 🐛 |
Paul Morelle 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!