web-dev-qa-db-fra.com

Comment tester une seule fonction de référence?

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.

28
hardPass

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=^$
52
peterSO

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
2
Salvador Dali

Test seulement TestFuncOne

$>> go test -run TestFuncOne

stuff_to_test.go

TestFuncOne() {
}

TestFuncTwo() {
}
0
robert king