Параллельное выполнение подтестов в golang - PullRequest
0 голосов
/ 09 апреля 2020

Я пытаюсь понять, действительно ли t.Parallel() необходим для одновременного запуска подтестов в go. Поэтому я читаю соответствующую документацию

. Субтесты также можно использовать для управления параллелизмом. Родительский тест будет завершен только после завершения всех его подтестов. В этом примере все тесты выполняются параллельно друг с другом и только друг с другом, независимо от других тестов верхнего уровня, которые могут быть определены:

func TestGroupedParallel(t *testing.T) {
    for _, tc := range tests {
        tc := tc // capture range variable
        t.Run(tc.Name, func(t *testing.T) {
            t.Parallel()
            ...
        })
    }
}

- выше я сказал, что t.Parallel() требуется для одновременного выполнения подтестов.

Однако приведенный ниже текст меня немного смутил, потому что он показался противоречивым:

Выполнение не возвращается, пока параллельные подтесты не будут завершены, предоставляя способ очистки после группы параллельных тестов:

func TestTeardownParallel(t *testing.T) {
    // This Run will not return until the parallel tests finish.
    t.Run("group", func(t *testing.T) {
        t.Run("Test1", parallelTest1)
        t.Run("Test2", parallelTest2)
        t.Run("Test3", parallelTest3)
    })
    // <tear-down code>
}

В качестве примера приводится «параллельные подтесты», но без использования t.Parallel()

, которые это тот случай?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...