go: parallel test execution

Go umí od verze 1.7 spouštět paralelně testy. To může být docela významné, pokud se snažíte o TDD a váš code base s testy se stále rozrůstá a jejich kompletní provedení už není tak honem honem, jak při zahájení psaní aplikace bylo. No a pak se vám právě může hodit své testovací scénáře spouštět paralelně a tak zpět zkrátit dobu provádění testů.

Tohle je testovaná funkcionalita

Úplná blbost, jde jen o to mít co testovat…

A takto pak může vypadat testovací scénář

Mám připravený test set a pro každý jeho item spouštím samotný test. Klasika. Asi nejdůležitější jsou řádky ptc := tc a t.Parallel(), které zajišťují paralelní vykonání testů.

Paralelní provedení

Po spuštění testu pak jde vidět, jak je Go mezi sebou spouští a zastavuje.

Pro kontrolu

Takto vypada spuštění testů po té, co jsem zaremoval příkaz t.Parallel(). Jednotlivé testy se spouští jeden po druhém.

Publikováno v GoTagged