A dashboard in your browser
vendor/bin/golem ui: run your tests and watch them live, read failures next to the code, see coverage line by line, build tests without writing PHP.
Try the live demo
One command boots a real PocketMine-MP server, loads your plugin from source and fills it with simulated players. Run it in your terminal, in CI, or from a dashboard in your browser. No mocks, no client, no more testing by hand.
A test spawns Steve, he joins a real server, gets greeted, and the test checks it. Then the same thing for every behaviour of your plugin, in one command.
public function testGreetsPlayersByName(): Generator
{
$steve = yield $this->golem('Steve');
$this->assertReceivedMessage($steve, 'Welcome, Steve!');
$this->assertHasItem($steve, VanillaItems::BREAD(), 3);
}From a plugin with no tests to a green run in about five minutes.
Each test reports as soon as it finishes, with how long it took in milliseconds and server ticks. This is the real output of the example plugin shipped with Golem.
You see what was expected, what the server actually sent, and the exact line of your test.
vendor/bin/golem ui opens a dashboard on your machine: pick tests, watch them pass live, open a failure next to the line that broke, see which lines of your plugin your tests never ran. Fuzz, benchmark, and build tests without writing PHP, from the same page.
Open the live demo โAdd one step to your workflow. PocketMine is cached between runs, a JUnit report is written, and failures are annotated right on the diff.
jobs:
golem:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: achedon12/golem@v0Golem is open source (MIT) and young: feedback shapes what comes next.