Das Go-Test-Flag „-run -' führt Tests viel schneller aus

王林
Freigeben: 2024-02-09 19:21:08
nach vorne
362 Leute haben es durchsucht

Go test“-run -”标志执行测试的速度要快得多

PHP-Editor Apple hat bei der Einführung des Testframeworks Go Test darauf hingewiesen, dass die Verwendung des Flags „-run –“ die Geschwindigkeit der Testausführung erheblich verbessern kann. Dieses Flag weist Go test an, nur die Testfunktion und keinen Beispielcode auszuführen. Dadurch kann das Test-Framework unnötige Initialisierungs- und Bereinigungsprozesse überspringen, was zu einer schnelleren Testausführung führt. Für Entwickler, die häufig Tests durchführen müssen, ist diese Technik sehr nützlich und kann die Arbeitseffizienz verbessern.

Frageninhalt

Ich habe mir einige Benchmarks unter https://github.com/roaringbitmap/roaring angesehen

Beim Ausführen eines bestimmten Benchmarks mit -run - (wie in den Kommentaren erwähnt): go test -bench benchmarknexts -benchmem -run - scheint schneller ausgeführt zu werden, zumindest die Ausführung ohne go test -bench benchmarknexts -benchmem -run - 似乎执行得更快,至少在没有 -run - scheint einen anfänglichen Overhead von 5 Sekunden zu verursachen, der auch dargestellt wird:

==roaring==
{1,2,3,4,5,100,1000}
{3,4,1000}
{}
Cardinality:  7
Contains 3?  true
1
3
4
5
1000

Wrote  22  bytes
I wrote the content to a byte stream and read it back.
size before run optimize: 1810 bytes, and after: 38 bytes.
Nach dem Login kopieren

Da die -run-Flagge Tests basierend auf einem Regex-Muster ausführt, scheint hier etwas ausgeschlossen zu sein, aber was zum Teufel ist, dass beide denselben Test ausführen, der einzige Unterschied ist der anfängliche Overhead.

Workaround

go test „-run -“-Flag führt den Test viel schneller aus

Dies ist das erwartete Ergebnis. Es geht schneller, wenn Sie keine Tests ausführen.

Um zu sehen, was ausgeführt wird, ändern Sie -v 选项添加到 go testAusführen.

Keine Tests durchgeführt:

go clean -testcache && go test -bench benchmarknexts -benchmem -run - -v
Nach dem Login kopieren

Alle Tests durchführen:

go clean -testcache && go test -bench benchmarknexts -benchmem -v`
Nach dem Login kopieren

Oder, da -run . allen Tests entspricht,

go clean -testcache && go test -bench benchmarknexts -benchmem -run . -v
Nach dem Login kopieren

go ist ein Tool zum Verwalten von Go-Quellcode.

Logo testen

-run regexp
    Run only those tests, examples, and fuzz tests matching the regular
    expression.

-v
    Verbose output: log all tests as they are run.
Nach dem Login kopieren

Cache erstellen und testen

Der Befehl go speichert auch erfolgreiche Pakettestergebnisse zwischen. Weitere Informationen finden Sie unter „Hilfe zum Testen“. Durch Ausführen von „go clean -testcache“ werden alle zwischengespeicherten Testergebnisse gelöscht (aber nicht die zwischengespeicherten Build-Ergebnisse).

Das obige ist der detaillierte Inhalt vonDas Go-Test-Flag „-run -' führt Tests viel schneller aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!