19 lines
2 KiB
Markdown
19 lines
2 KiB
Markdown
|
# disttest
|
|||
|
|
|||
|
Пакет `disttest` содержит интеграционные тесты.
|
|||
|
|
|||
|
Тесты запускают все компоненты внутри одного процесса. Это сделано для удобства отладки. В случае
|
|||
|
паники в любом месте, весь тест упадёт целиком. Все логи пишутся в один файл, так что всегда сразу понятен
|
|||
|
порядок событий. А к зависшему тесту можно подключиться в отладчике прямо из goland.
|
|||
|
|
|||
|
- `fixture.go` содержит код инициализации и остановки. Вам не нужно его менять. В `testdata/{{ .TestName }}`
|
|||
|
хранится директория с исходным кодом, которую использует клиент в соответствующем тесте. `workdir/{{ .TestName }}`
|
|||
|
сохраняет файлы после работы теста.
|
|||
|
- `single_worker_test.go` содержит тесты с одним воркером. Каждый тест проверяет отдельную функциональность.
|
|||
|
Отлаживайте тесты по одному, в порядке усложнения.
|
|||
|
- `three_workers_test.go` содержит тесты с тремя воркерами. Приступайте к их отладке, после того как тесты с одним
|
|||
|
воркером полностью пройдут.
|
|||
|
|
|||
|
Все тесты останавливают окружение отменяя корневой контекст. Если ваш код где-то неправильно обрабатывает
|
|||
|
отмену контекста, то тест может зависать на остановке. Вы можете отладить такое зависание, подключившись
|
|||
|
к зависшему тесту в дебагере, или послав SIGQUIT зависшему процессу.
|