shad-go/disttest
2020-04-28 16:30:44 +03:00
..
testdata/TestSourceFiles Split distbuild task into two parts 2020-04-09 12:55:04 +03:00
.gitignore Split distbuild task into two parts 2020-04-09 12:55:04 +03:00
fixture.go Fix running test under testtool 2020-04-21 00:08:29 +03:00
README.md Split distbuild task into two parts 2020-04-09 12:55:04 +03:00
recorder.go Split distbuild task into two parts 2020-04-09 12:55:04 +03:00
single_worker_test.go Fix TestJobCaching. Swap WriteFile and second Client.Build 2020-04-28 16:30:44 +03:00
three_workers_test.go Split distbuild task into two parts 2020-04-09 12:55:04 +03:00

disttest

Пакет disttest содержит интеграционные тесты.

Тесты запускают все компоненты внутри одного процесса. Это сделано для удобства отладки. В случае паники в любом месте, весь тест упадёт целиком. Все логи пишутся в один файл, так что всегда сразу понятен порядок событий. А к зависшему тесту можно подключиться в отладчике прямо из goland.

  • fixture.go содержит код инициализации и остановки. Вам не нужно его менять. В testdata/{{ .TestName }} хранится директория с исходным кодом, которую использует клиент в соответствующем тесте. workdir/{{ .TestName }} сохраняет файлы после работы теста.
  • single_worker_test.go содержит тесты с одним воркером. Каждый тест проверяет отдельную функциональность. Отлаживайте тесты по одному, в порядке усложнения.
  • three_workers_test.go содержит тесты с тремя воркерами. Приступайте к их отладке, после того как тесты с одним воркером полностью пройдут.

Все тесты останавливают окружение отменяя корневой контекст. Если ваш код где-то неправильно обрабатывает отмену контекста, то тест может зависать на остановке. Вы можете отладить такое зависание, подключившись к зависшему тесту в дебагере, или послав SIGQUIT зависшему процессу.