Xumes
|
Xumes is a game testing tool designed to be used on top of games without the need to modify the game sources. It provides a framework for observing and interacting with game elements, training models, and conducting tests. For the moment, only the Godot framework has an implemented module for interacting with Xumes. So for the moment, the documentation will be focused on the implementation with Godot. Please check the documentation for more information. |
|
Framework
The framework is based on the BDD methodology, that's means that two type of files are needed to be write for conducting tests. Those file are the feature files and the steps files.
The following diagram illustrates the architecture of the framework:
Installation
pip install xumes
Using with Godot
To use Xumes with Godot, you need to compile Godot from sources. Follow the instructions in the Godot documentation <https://docs.godotengine.org/en/stable/development/compiling/index.html>_.
Clone the following repository instead of the official one:
git clone https://github.com/mastainvin/godot.git
Don't forget to checkout to the
xumesbranch before buildGodot.
To start the Godot editor, run the following command:
./bin/godot.x11.tools.64 --editor --path <path_to_godot_project>
Quick start
Once Xumes and Godot are installed, you can test your installation with the Flappy Bird example. First, clone the repository:
git clone https://github.com/mastainvin/Xumes-Examples.git
Then, navigate to the FlappyBird directory:
cd Xumes-Examples/Godot/flappy_bird/
Run the tests with the following command:
python -m xumes test ./Tests/PipeSizeTest/features -h 10 -i 100
⚠️ Always use
python -m xumesto run the tests. This ensures the useXumesas a module and be able to import other modules in the project.
This command will run the tests found in the features directory in headless mode (without rendering the game), with a frame rate limit of 10 FPS and 100 iterations.
You should see the following output:
TEST REPORT
9 tests passed on a total of 9 in 00:01:16.
Tests passed:
- PipeSize/Testing the pipe size [2] - (i=0.5, j=1, k=2)
- PipeSize/Testing the pipe size easy [1] - (i=0.5, j=0.5, k=2)
- PipeSize/Testing the pipe size easy [2] - (i=1, j=1, k=2)
- PipeSize/Testing the pipe size hard [1] - (i=1, j=0, k=2)
- PipeSize/Testing the pipe size [1] - (i=0.5, j=0, k=2)
- PipeSize/Testing the pipe size easy [0] - (i=0, j=0, k=2)
- PipeSize/Testing the pipe size hard [0] - (i=0, j=1, k=2)
- PipeSize/Testing the pipe size [0] - (i=0, j=0.5, k=2)
- PipeSize/Testing the pipe size [3] - (i=1, j=0.5, k=2)
Here is the video of godot first build and test execution.
Metadata
Release files for xumes 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| xumes-0.3.0.tar.gz | 45.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| xumes-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 114.2 kB
Release files / xumes-0.3.0.tar.gz
| Download URL | xumes-0.3.0.tar.gz |
|---|---|
| Size | 45.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fbdd65556742714d9bf0cda4ec1c2e05f373197f8f4feaa36939b44295d225ce
|
|
BLAKE2b-256 checksum How to use checksums |
6a476873d3d15eff5caf19c2e7268b7f764a0a007e28f989be2577b533c8b2bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.20
|
Release files / xumes-0.3.0-py3-none-any.whl
| Download URL | xumes-0.3.0-py3-none-any.whl |
|---|---|
| Size | 68.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
79741052f5543ccafc6c6ea1cd2b151fd26e13e311ef6aba6a942023444a9de9
|
|
BLAKE2b-256 checksum How to use checksums |
9c629ac81ed5be36f3396d5d9b94d441882042840ad0584cb9473644c20da710
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.20
|