Execute Luau tests on Roblox Cloud
Project description
Aether
Aether (formerly roblox-test-runner) is a powerful CLI tool designed to execute Luau tests (TestEZ) directly on Roblox Cloud. It allows you to run unit tests from your local machine and see the results instantly, integrating seamlessly into your development workflow.
Features
- 🚀 Run Tests on Cloud: Execute tests in a live Roblox server environment.
- 📦 Rojo Integration: Automatically respects your
default.project.jsonstructure. - ⚙️ Configurable: Use
roblox-test-runner.toml(legacy) oraether.toml(future) to customize paths, timeouts, and more. - 🔄 Watch Mode: Automatically re-run tests when files change (
-w). - 🤖 CI/CD Ready: Native support for GitHub Actions authentication.
- 🎯 Run Failed: Easily retry only failed tests with
--failed.
Installation
pip install aether-runner
Quick Start
-
Initialize Configuration:
aether initThis creates a configuration file.
-
Set API Key (for local development):
aether set-api <YOUR_API_KEY>
-
Run Tests:
aether runor watch for changes:
aether run --watch
Usage
Commands
run [test_name]: Run tests. omittest_nameto run all.-v, --verbose: Show full logs.-w, --watch: Watch mode.-j, --json: JSON output.--failed: Run only tests that failed in the previous run.
init: Create default configuration.config: View current configuration.set-api <key>: Save API key.auth: CI/CD authentication helper.
Configuration (roblox-test-runner.toml)
[runner]
timeout = 60
tests_folder = "tests"
[project]
rojo_project = "default.project.json"
Environment & Debugging
Execution Environment
Tests run in a Roblox Cloud headless environment. This has some important limitations:
- No Physics Simulation: Gravity and physics stepping do not run automatically. The environment is "static". If your tests rely on physics, you may need to manually step the physics engine or mock it.
- Headless: No visual rendering.
- Script Context: Tests run inside a temporary script, often referred to as
TaskScript.
Debugging
The runner automatically maps stack traces from the bundled TaskScript back to your original source files (supported for .luau files managed by Rojo).
- Tracebacks now use relative paths for easier reading (e.g.,
src/my_script.server.luau:45). - Use
print()debugging freely; logs are streamed back to your terminal.
API Keys
API keys can be provided in three ways (checked in order):
- CLI Argument:
aether run --key <KEY>(mostly for CI) - Environment Variable:
ROBLOX_API_KEY - User Configuration: Saved via
aether set-api <KEY>(stored in your user home directory)
Contributing
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aether_runner-0.3.6.tar.gz.
File metadata
- Download URL: aether_runner-0.3.6.tar.gz
- Upload date:
- Size: 34.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc5772e26a3c6b4103e5e0fcc44d4b6f558c3e9a6c2268c69c2aa77e4c44c787
|
|
| MD5 |
2e42f9f5f87ed9c3d5ce276453feda40
|
|
| BLAKE2b-256 |
dfb4b3bca39ef1f740913bdd311189f70dd9d8c17b403d8605ffc2cb8d88a646
|
File details
Details for the file aether_runner-0.3.6-py3-none-any.whl.
File metadata
- Download URL: aether_runner-0.3.6-py3-none-any.whl
- Upload date:
- Size: 42.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e66674dc4d5b50e44fd703dbf461e11f9c857b903750d4d0ad8ee97784933331
|
|
| MD5 |
6355cfd9407a79b11b8e81191fb66238
|
|
| BLAKE2b-256 |
28568820d942de1a8707c641a33acd5ea590b4a8b32ff69109c087ebb284aff6
|