Tests unitaires
Un test unitaire lance un seul test VoxelBench avec /bench test, au lieu du benchmark complet. Il ne donne pas de score : il donne les mesures propres à ce test, que vous suivez dans le temps depuis votre tableau de bord. Cette page explique comment envoyer les résultats à voxelbench.com et les y consulter.
Tests unitaires et benchmarks
| Test unitaire | Benchmark complet | |
|---|---|---|
| Commande | /bench test <id> : un seul test | /bench start : la série standard de tests |
| Résultat | Les mesures du test : TPS, MSPT et ce que le test compte (chunks par seconde, objets déplacés…) | Un score et un rang, calculés par voxelbench.com |
| Envoi à voxelbench.com | Seulement si le serveur est lié et que reports.backend.unit-tests vaut true | Toujours, serveur lié ou non |
| Destination | Tests unitaires dans votre tableau de bord | Une page de rapport, dans votre compte si le serveur est lié |
| Où il apparaît | Uniquement dans votre tableau de bord : jamais au classement ni dans les statistiques | Au classement, une fois que vous le rendez public |
| Qui peut l'ouvrir | Vous, le détenteur du serveur qui l'a envoyé une fois ce serveur vérifié, et les administrateurs de VoxelBench | Selon sa visibilité (voir Qui peut voir un rapport) |
| Conservation | Jusqu'à ce que vous le supprimiez | 30 minutes si le serveur n'est pas lié ; s'il l'est, 30 jours avec l'offre gratuite et 1 an avec Pro |
Les tests unitaires sont disponibles quelle que soit l'offre, gratuite comprise.
Envoyer les résultats à voxelbench.com
-
Liez le serveur à votre compte (voir Liaison de serveur). voxelbench.com n'accepte aucun test unitaire d'un serveur non lié.
-
Activez l'envoi. Dans
plugins/VoxelBench/config.yml, mettez :reports: backend: unit-tests: trueLa valeur par défaut est
false. Lancez/bench reloadpour l'appliquer.
Tant que l'une des deux conditions manque, /bench test garde le résultat sur le serveur sans le signaler. Une fois les deux réunies, le joueur qui a lancé le test voit Test synchronisé sur voxelbench.com dans le chat.
voxelbench.com accepte jusqu'à 30 résultats de tests unitaires par heure d'un même serveur, comptés à part des rapports de benchmark (voir Limites de débit).
/bench tier, qui fait gravir son échelle de paliers à un seul type de stress, envoie son résultat par le même canal, aux deux mêmes conditions, et prévient quand l'envoi est désactivé (voir Stress Limit). Un test lancé par l'auto-bench est toujours envoyé, quel que soit ce réglage.
Lancer un test
/bench test # liste tous les tests, par catégorie
/bench test <id> [paramètres] # lance un test
Par exemple :
/bench test chunkLoading
/bench test redstone
/bench test singleCoreBenchmark
Le plugin fournit 26 tests, et des extensions peuvent en ajouter. Une commande lance un seul test. Certains tests exigent un joueur connecté et ne se lancent pas depuis la console, et les tests de gameplay qui modifient le monde tournent dans le monde de benchmark épinglé ou dans un monde plat temporaire, jamais dans le monde où vous vous trouvez. La liste complète, les paramètres et les permissions sont dans Commandes ; le monde où tourne chaque test, dans Benchmarks.
Consulter les résultats
Allez dans Tableau de bord → Tests unitaires. Chaque ligne donne le test, son issue (Succès, Ignoré ou Échec ; survolez-la pour lire le code de la raison), le TPS et le MSPT moyens, la durée et la date. Un badge PALIERS signale un résultat de /bench tier, un badge AUTO-BENCH un test lancé par l'auto-bench.
- Filtres : un test (Tous les tests), une catégorie (Toutes catégories), un serveur (filtre affiché dès que vous avez un serveur lié). Le bouton Voir les tests unitaires de l'Historique des benchmarks d'un serveur ouvre cette page filtrée sur ce serveur.
- Trier par : Date, Date du test, TPS (moy.), MSPT (moy.), Durée ou Nom du test, dans l'ordre croissant ou décroissant.
- Voir le test ouvre le résultat ; Supprimer le test le supprime définitivement.
La page d'un résultat s'ouvre pour vous, pour le détenteur du serveur qui l'a envoyé une fois ce serveur vérifié, et pour les administrateurs de VoxelBench ; toute autre personne obtient une page introuvable, même avec le lien. Elle s'affiche dans la langue du site, dates et nombres compris, et indique :
- si le test a réussi, échoué ou été ignoré, et pourquoi (voir ci-dessous) ;
- le TPS et le MSPT : moyenne, minimum et maximum ;
- les percentiles : TPS au 1er et au 5e percentile et médiane, MSPT au 95e et au 99e percentile, avec le nombre d'échantillons et des indices de stabilité ;
- les métriques propres au test, les signalements relevés par le plugin pendant le run et les paramètres du test ;
- le système (CPU, cœurs et threads, mémoire, système d'exploitation, Java) et le serveur (logiciel, version de Minecraft, build, version du plugin).
Tests ignorés et tests échoués
Un test se termine de trois façons : Réussi, Échec ou Ignoré. Ignoré signifie que le plugin a choisi de ne pas lancer le test, ou l'a arrêté pour protéger le serveur : ce n'est pas une faute du serveur. Quand un test n'a pas réussi, le plugin en donne la raison, affichée sur la page du résultat :
| Raison | Issue | Ce qui s'est passé |
|---|---|---|
| Ignoré pour protéger la mémoire du serveur | Ignoré | Le test risquait d'épuiser la mémoire du serveur. Rien n'a tourné |
| Arrêté par la surveillance mémoire | Ignoré | La mémoire est devenue trop juste pendant le test, et le plugin l'a arrêté. Seules des données partielles existent |
| Aucun joueur connecté | Ignoré | Le test a besoin d'un joueur connecté, et il n'en restait aucun |
| Indisponible sur ce logiciel serveur | Ignoré | Le logiciel serveur ne fournit pas ce que le test mesure |
| Un prérequis manque | Ignoré | Un élément dont le test dépend est absent |
| Monde de benchmark requis | Ignoré | Le test modifie le terrain et aucun monde de benchmark n'était disponible. Épinglez-en un avec /bench world set <monde> |
| Bloqué — aucun progrès | Échec | Le test a cessé de progresser et a été arrêté |
| Durée maximale dépassée | Échec | Le test a dépassé son plafond de durée |
| Erreur inattendue du plugin | Échec | Le test a rencontré une erreur inattendue ; les journaux du serveur en donnent le détail |
Une raison envoyée par un plugin plus récent, que le site ne connaît pas encore, s'affiche sous forme de code.