Web API 用にいくつかのパッケージを実装しました。それぞれに独自のテスト ケースがあります。各パッケージがgo test ./api/pkgname
テスト パスを使用してテストされるとき。テストケースですべてのテストを一度に実行したいgo test ./api/...
場合、常に失敗します。
各テスト ケースでは、すべての移行を使用してスキーマ全体を再作成し、適用しますDROP SCHEMA public CASCADE
。CREATE SCHEMA public
テストスイートは、リレーション/テーブルが存在しないというエラーをランダムに報告するため、各テストスイート (パッケージごと) が何らかの形で並行して実行され、DB の状態が台無しになっていると思います。
成功しないなど、いくつかのテストフラグを渡そうとしgo test -cpu 1 -parallel 0 ./src/api/...
ました。
ここでの問題は、テストが並行して実行されている可能性がありますか? はいの場合、シリアル実行を強制するにはどうすればよいですか?
アップデート:
現在、この回避策を使用してテストを実行していますが、より良い解決策があるかどうかはまだ疑問です
find <dir> -type d -exec go test {} \;