2014-06-26 5 views
7

Wie benutzt man die Flag-Optionen für Benchmarks mit dem gocheck Testrahmen? In der Verbindung, die ich zur Verfügung stellte, scheint es, dass das einzige Beispiel, das sie zur Verfügung stellen, indem sie laufen, go test -check.b, aber sie stellen keine zusätzlichen Kommentare zur Verfügung, wie es funktioniert, also ist es schwierig es zu benutzen. Ich konnte nicht einmal das -check in der Dokumentation finden, wenn ich go help test noch tat, als ich go help testflag tat. Insbesondere möchte ich wissen, wie die Benchmark-Test-Framework besser zu nutzen und zu kontrollieren, wie lange es oder läuft, wie viele Iterationen für etc läuft etc. Zum Beispiel im Beispiel bieten sie:Wie verwenden Sie die Benchmark-Flags für das go (golang) gocheck-Testframework?

func (s *MySuite) BenchmarkLogic(c *C) { 
    for i := 0; i < c.N; i++ { 
     // Logic to benchmark 
    } 
} 

Es ist die Variable cN Wie spezifiziert man diese Variable? Ist es durch das eigentliche Programm selbst oder ist es durch Go-Test und seine Flags oder die Befehlszeile?

Auf der Seite zur Kenntnis, hat die Dokumentation von go help testflag über -bench regex, benchmem und benchtime t Optionen, aber reden, es geht um die -check.b Option nicht sprechen. Allerdings habe ich versucht, diese Optionen wie beschrieben auszuführen, aber es hat wirklich nichts getan, was ich bemerken konnte. Funktioniert gocheck mit den ursprünglichen Optionen für go test?

Das Hauptproblem, das ich sehe, ist, dass es keine klare Dokumentation gibt, wie man das gocheck Werkzeug oder seine Befehle benutzt. Ich habe es aus Versehen eine falsche Flagge und warf es mir eine Fehlermeldung darauf hindeutet, nützliche Befehle, die ich (die begrenzte Beschreibung) benötigen:

-check.b=false: Run benchmarks 
    -check.btime=1s: approximate run time for each benchmark 
    -check.f="": Regular expression selecting which tests and/or suites to run 
    -check.list=false: List the names of all tests that will be run 
    -check.v=false: Verbose mode 
    -check.vv=false: Super verbose mode (disables output caching) 
    -check.work=false: Display and do not remove the test working directory 
    -gocheck.b=false: Run benchmarks 
    -gocheck.btime=1s: approximate run time for each benchmark 
    -gocheck.f="": Regular expression selecting which tests and/or suites to run 
    -gocheck.list=false: List the names of all tests that will be run 
    -gocheck.v=false: Verbose mode 
    -gocheck.vv=false: Super verbose mode (disables output caching) 
    -gocheck.work=false: Display and do not remove the test working directory 
    -test.bench="": regular expression to select benchmarks to run 
    -test.benchmem=false: print memory allocations for benchmarks 
    -test.benchtime=1s: approximate run time for each benchmark 
    -test.blockprofile="": write a goroutine blocking profile to the named file after execution 
    -test.blockprofilerate=1: if >= 0, calls runtime.SetBlockProfileRate() 
    -test.coverprofile="": write a coverage profile to the named file after execution 
    -test.cpu="": comma-separated list of number of CPUs to use for each test 
    -test.cpuprofile="": write a cpu profile to the named file during execution 
    -test.memprofile="": write a memory profile to the named file after execution 
    -test.memprofilerate=0: if >=0, sets runtime.MemProfileRate 
    -test.outputdir="": directory in which to write profiles 
    -test.parallel=1: maximum test parallelism 
    -test.run="": regular expression to select tests and examples to run 
    -test.short=false: run smaller test suite to save time 
    -test.timeout=0: if positive, sets an aggregate time limit for all tests 
    -test.v=false: verbose: print additional output 

schreibt falsche Befehle, um die einzige Möglichkeit, etwas Hilfe mit diesem Werkzeug zu bekommen? Es hat keine Hilfe-Flagge oder etwas?

Antwort

3

sehen die Description_of_testing_flags:

-bench regexp 
    Run benchmarks matching the regular expression. 
    By default, no benchmarks run. To run all benchmarks, 
    use '-bench .' or '-bench=.'. 

-check.b die gleiche Art und Weise wie -test.bench funktioniert.

z. um alle Benchmarks zu laufen:

go test -check.b=. 

spezifische Benchmark laufen:

go test -check.b=BenchmarkLogic 

Weitere Informationen zum Testen in Go kann here

+0

Bitte ändern '' 'gehen Test -check.b = gefunden werden .''' mit '' 'go test --check.b''' oder' '' go test --gocheck.b''' – hoenir

Verwandte Themen