Dans mon package Go, il existe plusieurs fichiers de référence tels que map1_benchmark_test.go
et map2_benchmark_test.go
. Dans chaque fichier *_benchmark_test.go
, il existe plusieurs fonctions de référence telles que func BenchmarkMapTravel(b *testing.B)
et func BenchmarkMapGet(b *testing.B)
.
La question est, comment puis-je tester une seule fonction de référence?
J'ai essayé de lire certains manuels et je n'ai rien obtenu de benchmark en exécutant go help test
.
Description des drapeaux de test
-test.bench pattern Run benchmarks matching the regular expression. By default, no benchmarks run. -test.run pattern Run only those tests and examples matching the regular expression.
Pour plus de commodité, chacun de ces drapeaux
-test.X
du binaire de test est également disponible en tant que drapeau-X
dans 'go test
' lui-même.
Pour aider,
$ go help testflag
Par exemple,
go test -test.bench MapTravel
go test -test.bench MapGet
ou
go test -bench MapTravel
go test -bench MapGet
Pour contourner les fonctions de test, incluez un modèle -test.run
qui filtre chaque test. Par exemple,
go test -test.bench MapTravel -test.run=thisexpressionwontmatchanytest
ou
go test -bench MapTravel -run=^$
Vous ne pouvez pas indiquer d’indicateur qui exécute uniquement des tests de performance (ou un seul test de performances). Les seuls les drapeaux liés à ceux-ci sont:
-expression rationnelle Exécutez des repères correspondant à l'expression régulière . Par défaut, aucun test de performance ne s'exécute. Pour exécuter tous les tests, utilisez '-bench.' ou '-bench =.'.
-run regexp Exécutez uniquement les tests et exemples correspondant à la norme expression.
Donc, si vous ne voulez exécuter qu'un seul point de repère, vous pouvez le faire:
go test -bench=nameOfYourBenchmark -run=^a
Cela entraînera uniquement l'exécution de tests commençant par a
. Et comme chaque test doit être nommé Test<something>
, aucun test ne sera exécuté.
Pour exécuter uniquement des points de repère:
go test -bench=. -run=^a
Test seulement TestFuncOne
$>> go test -run TestFuncOne
stuff_to_test.go
TestFuncOne() {
}
TestFuncTwo() {
}