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
![](https://pepa.holla.cz/wp-content/uploads/2019/06/main-1024x998.png)
Úplná blbost, jde jen o to mít co testovat…
A takto pak může vypadat testovací scénář
![](https://pepa.holla.cz/wp-content/uploads/2019/06/main_test-1024x988.png)
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í
![](https://pepa.holla.cz/wp-content/uploads/2019/06/Snímek-obrazovky-2019-06-01-v-20.00.18.jpg)
Po spuštění testu pak jde vidět, jak je Go mezi sebou spouští a zastavuje.
Pro kontrolu
![](https://pepa.holla.cz/wp-content/uploads/2019/06/Snímek-obrazovky-2019-06-01-v-20.12.32.jpg)
Takto vypada spuštění testů po té, co jsem zaremoval příkaz t.Parallel()
. Jednotlivé testy se spouští jeden po druhém.