| Propriété | Valeur |
|---|---|
| Catégorie | Reproductibilité (JustDummies.Reproducibility) |
| Sévérité | 🔵 Info |
| Activée par défaut | Non — opt-in |
Les surcharges avec graine existent pour rejouer une exécution qu’un échec a rapportée. C’est correct pendant qu’on reproduit, et faux dès que c’est committé : le test tire alors les mêmes valeurs pour toujours, et cesse de révéler la dépendance à une valeur particulière que l’« arbitraire par défaut » existe pour mettre au jour.
C’est le fit/.only de cette bibliothèque — juste sur le moment, faux dans le dépôt.
Comment l’activer
dotnet_diagnostic.JD019.severity = warning
Non conforme
[Fact, Reproducible(Seed = 1234)] // JD019
Any.Reproducibly(1234, () => { ... }); // JD019
Any.WithSeed(1234) // JD019
Conforme
[Fact, Reproducible]
Any.Reproducibly(() => { ... });
Pourquoi elle est livrée en opt-in
Parce que le guide de maintenance de ce dépôt prescrit l’inverse pour toute une classe de tests : « Pin a seed for anything statistical. » Une règle activée par défaut combattrait une pratique documentée.
La mesure est sans appel. Activée sur JustDummies.UnitTests, elle signale 238 sites — presque tous légitimes, des épinglages délibérés sur des tests de distribution et de couverture. Elle gagne sa place comme balayage d’avant-livraison qu’on active exprès, pas comme vérification permanente.
Ce qui n’est pas signalé
- Une graine lue depuis une configuration, calculée, ou passée en paramètre — seule une constante de compilation est signalée.
- Les surcharges sans graine, qui sont le chemin arbitraire par défaut.