azureblaze/bevy_mod_screenshot_test — explained in plain English
Analysis updated 2026-05-18
Catch unintended rendering changes in a Bevy game by comparing screenshots across test runs.
Automate a sequence of in-game actions and capture screenshots at specific points for review.
Build a visual regression suite that runs in continuous integration for a Bevy project.
| azureblaze/bevy_mod_screenshot_test | abc3dz/mixxx | abyo-software/ferro-stash | |
|---|---|---|---|
| Stars | 1 | 1 | 1 |
| Language | Rust | Rust | Rust |
| Setup difficulty | moderate | moderate | moderate |
| Complexity | 3/5 | 2/5 | 4/5 |
| Audience | developer | general | ops devops |
Figures from each repo's GitHub metadata at analysis time.
Requires disabling the default Rust test harness in Cargo.toml since Bevy apps cannot run under it.
bevy_mod_screenshot_test is a testing plugin for Bevy, a game engine written in Rust. It solves a specific problem: catching visual bugs in a game or app that regular automated tests cannot catch, especially bugs related to how things are rendered on screen. Normally, checking rendering by hand is slow and easy to get wrong, so this tool automates it with screenshot comparisons instead. Here is how it works in practice. A developer writes a short sequence of steps for the plugin to run inside the Bevy app, such as placing objects in a 3D scene and deciding exactly when to snap a picture. The plugin then launches the app, walks through those steps in order, and shuts the app down automatically once finished. The very first time a test runs, the plugin saves the screenshots it captured into an expected folder, and the developer looks at these images once to confirm they look correct before committing them to the project. On every run after that, the plugin takes new screenshots and compares them against the saved expected ones. If anything differs, the test fails, which signals that either the code broke something by accident or the visual change was intentional and the saved expected image needs to be updated. Using it requires writing Rust test files with a special configuration, since Bevy applications cannot run under Rust's normal test setup. The README includes a full code example showing how to spawn a scene, wait for shaders and assets to load, pause for a number of frames, take a screenshot, then repeat with a camera rotation change before finally validating the results. This tool is aimed at developers already building games or 3D applications with the Bevy engine who want a reliable way to catch rendering regressions in continuous integration.
A Bevy game engine plugin that automates screenshot based visual regression testing.
Mainly Rust. The stack also includes Rust, Bevy.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
double-check against the repo, no cap.