ホームページ >バックエンド開発 >Golang >Azure Devops パイプラインを使用した Golang テスト コンテナー: コンテナーがランダムに強制終了されましたか?

Azure Devops パイプラインを使用した Golang テスト コンテナー: コンテナーがランダムに強制終了されましたか?

WBOY
WBOY転載
2024-02-05 21:54:071049ブラウズ

Golang 测试容器与 Azure Devops 管道:容器被随机杀死?

質問の内容

golang testcontainers を使用したデータベース統合テストの実装と実行はローカルで完全に機能しますが、テストは Azure Devops パイプライン内にあるように見えます。働かないよ。

パイプラインログ表示:

リーリー

コンテナのログを追加し、待機基準を改善し、db コンテナ設定ファイルの使用を削除し (ファイルをコンテナにコピーする必要がなくなるように)、そして Ryuk を無効にした後、他に何が必要なのか疑問に思っています。完了したか、コンテナの初期化が正しく機能しなかった場合。

単体テストごとに、テスト コンテナーは次のように開始されます:

リーリー

...repository、err := new(ctx) を使用してリポジトリを作成します。最後に、migrate を使用して運用データベースと同様のデータベースをセットアップし、データベース接続と処理などに gorm を使用します。

単体テストの基本テンプレートは次のとおりです:

リーリー

Azure パイプラインの場合は、ストック Azure エージェント プールを使用します。Go バージョンは「1.18.0 x64」です。

何かヒントがあれば大歓迎です。よろしくお願いします。


正解


満足度の低い解決策として、コンテナーの作成後、データベース接続を設定する前に 5 秒間のスリープを追加しました。

単一コンテナー内で実行している場合でも単体テストがランダムに失敗することが確認されているため、これは Azure DevOps 固有の問題である可能性があります。

これを応答として受け入れることは、コミュニティにとっての課題でもあります...

以上がAzure Devops パイプラインを使用した Golang テスト コンテナー: コンテナーがランダムに強制終了されましたか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。