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 サイトの他の関連記事を参照してください。