Я реализовал несколько пакетов для веб-API, каждый из которых имеет свои собственные тестовые примеры. Когда каждый пакет тестируется с помощью go test ./api/pkgname
, тесты проходят. Если я хочу запустить все тесты сразу с go test ./api/...
, тестовые случаи всегда терпят неудачу.
В каждом тестовом случае я воссоздаю всю схему с помощью DROP SCHEMA public CASCADE
, а затем CREATE SCHEMA public
и применяю все миграции. В тестовом наборе сообщается об ошибках в случайном порядке, говоря, что отношения/таблицы не существует, поэтому я предполагаю, что каждый набор тестов (по каждому пакету) выполняется как-то параллельно, тем самым испортив состояние БД.
Я попытался пропустить несколько тестовых флагов, например go test -cpu 1 -parallel 0 ./src/api/...
, без успеха.
Может ли проблема состоять в параллельном тестировании, и если да, то как я могу принудительно выполнить последовательный запуск?
Update:
В настоящее время я использую это обходное решение для запуска тестов, но мне все еще интересно, есть ли лучшее решение
find <dir> -type d -exec go test {} \;