Unit Tests
A unit test runs a single VoxelBench test with /bench test, instead of the full benchmark. It gives no score: it gives that test's own measurements, which you can follow over time in your dashboard. This page covers sending results to voxelbench.com and reading them there.
Unit Tests and Benchmarks
| Unit test | Full benchmark | |
|---|---|---|
| Command | /bench test <id>: one test | /bench start: the standard series of tests |
| Result | The test's measurements: TPS, MSPT, and what the test counts (chunks per second, items movedโฆ) | A score and a rank, computed by voxelbench.com |
| Sent to voxelbench.com | Only when the server is linked and reports.backend.unit-tests is true | Always, linked or not |
| Where it goes | Unit tests in your dashboard | A report page, in your account if the server is linked |
| Where it appears | Only in your dashboard: never on the leaderboard or in the statistics | On the leaderboard once you make it public |
| Who can open it | You, whoever holds the server that sent it once they have verified it, and VoxelBench administrators | Depends on its visibility (see Who Can See a Report) |
| Kept | Until you delete it | 30 minutes if the server is not linked; once it is, 30 days on Free and 1 year on Pro |
Unit tests are available on every plan, the Free plan included.
Sending Results to voxelbench.com
-
Link the server to your account (see Server Linking). voxelbench.com accepts no unit test from a server that is not linked.
-
Turn sending on. In
plugins/VoxelBench/config.yml, set:reports: backend: unit-tests: trueIt is
falseby default. Run/bench reloadto apply it.
While either condition is missing, /bench test keeps the result on the server without saying so. Once both are met, a player who ran the test sees Test synced to voxelbench.com in chat.
voxelbench.com accepts up to 30 unit test results per hour from one server, counted apart from benchmark reports (see Rate Limits).
/bench tier, which walks a single stress type up its ladder, sends its result through the same channel, under the same two conditions, and says so when sending is off (see Stress Limit). A test run by auto-bench is always sent, whatever this setting says.
Running a Test
/bench test # list every test, by category
/bench test <id> [parameters] # run one test
For example:
/bench test chunkLoading
/bench test redstone
/bench test singleCoreBenchmark
The plugin ships 26 tests, and extensions can add their own. One command runs one test. Some tests need a connected player and cannot be started from the console, and the gameplay tests that change the world run in the pinned benchmark world or in a temporary flat world, never in the world you stand in. The full list, the parameters and the permissions are in Commands; where each test runs is in Benchmarks.
Viewing Results
Go to Dashboard โ Unit tests. Each line shows the test, its outcome (Success, Skipped or Failed; hover it for the reason code), the average TPS and MSPT, the duration and the date. A TIER badge marks a /bench tier result, an AUTO-BENCH badge a test run by auto-bench.
- Filters: one test (All Tests), one category (All Categories), one server (All servers, shown once you have a linked server). The View unit tests button in a server's Benchmark history opens this page filtered on that server.
- Sort by: Date, Test Date, TPS (avg), MSPT (avg), Duration or Test Name, ascending or descending.
- View Test opens the result; Delete Test deletes it for good.
A result page opens for you, for whoever holds the server that sent it once they have verified it, and for VoxelBench administrators; anyone else gets a page not found, even with the link. It is shown in the language of the site, dates and numbers included, and shows:
- whether the test passed, failed or was skipped, and why (see below);
- TPS and MSPT: average, minimum and maximum;
- the percentiles: TPS at the 1st and 5th percentile and the median, MSPT at the 95th and 99th percentile, with the number of samples and stability indices;
- the metrics specific to the test, the runtime flags the plugin raised, and the parameters the test ran with;
- the system (CPU, cores and threads, memory, operating system, Java) and the server (software, Minecraft version, build, plugin version).
Skipped and Failed Tests
A test ends in one of three ways: Passed, Failed or Skipped. Skipped means that the plugin chose not to run the test, or stopped it to protect the server: this is not a fault of the server. When a test did not pass, the plugin gives a reason, shown on the result page:
| Reason | Outcome | What happened |
|---|---|---|
| Skipped to protect the server's memory | Skipped | Running the test could have exhausted the server's memory. Nothing ran |
| Stopped by the memory watchdog | Skipped | Memory ran low during the test, and the plugin stopped it. Only partial data exists |
| No player online | Skipped | The test needs a connected player, and none was left |
| Not available on this server software | Skipped | The server software does not provide what the test measures |
| A prerequisite is missing | Skipped | Something the test depends on is absent |
| Needs a benchmark world | Skipped | The test changes terrain and no benchmark world was available. Pin one with /bench world set <world> |
| Stuck โ no progress | Failed | The test stopped making progress and was ended |
| Exceeded its time limit | Failed | The test ran past its time ceiling |
| Unexpected plugin error | Failed | The test hit an unexpected error; the server logs have the details |
A reason that a newer plugin sends and the site does not know yet is shown as its code.