Azure DevOpsパイプライン:ローカルで合格したテストはパイプラインで失敗します

アンドリュー

私たちのチームはAzureDevOpsパイプラインを実装しようとしていますが、いくつかの問題があります。背景として、セルフホストのWindowsサーバーでテストを実行しています。すべての作業でフロントエンドテストを実行しましたが、バックエンドを合格させるのに問題があります。

テストの大部分は問題なく合格していますが、期待どおりに機能しない場合がいくつかあります。それらは並行して実行できるはずですが、それが問題ではないことを確認するためにオフにしました。また、目立った変更を加えずに、それらを単独で実行してみました。

私たちが得るエラーは、以下のような単純なアサートの失敗であり、多くの情報を提供しません。

 Error Message:
   Assert.AreEqual failed. Expected:<True>. Actual:<False>.

しかし、行番号は、私が理解していない以下のようなモックセットアップを指しています。

mockQueryHandler.Setup(x => x.Handle(It.IsAny<FindQuery>())).Returns(info);

現在、最も問題を引き起こしているテストクラスは、イベントアラート機能をテストするクラスです。最初のテストは合格するようですが、後続のテストは失敗します。ただし、失敗したテストをあきらめるまで3回再実行するパイプライン設定があります。したがって、再実行するたびに、次のテストに合格します。私が考えることができる唯一のことは、私たちのオートモックが何らかの理由で私たちに問題を与えているということです。AutoMockに従ってセットアップしました-キー付き登録でユニットテストする方法は?

次のようにモックアウトします。

  var IAbstractEventFactoryMock = new Mock<IAbstractEventFactory>();
  using (var mock = AutoMock.GetLoose(builder => builder.RegisterInstance(IAbstractEventFactoryMock.Object).Keyed<IAbstractEventFactory>("EventLogFactory").Keyed<IAbstractEventFactory>("ArpEventLogFactory"))) {
...
}

以下は.runsettingsファイルです

<RunSettings>  
  <RunConfiguration>
    <ResultsDirectory>.\TestResults</ResultsDirectory>
  </RunConfiguration>

  <MSTest>
  </MSTest>
</RunSettings>

以下は、テストの実行に使用しているYAMLです

steps:
- task: VSTest@2
  displayName: 'Run All Tests'
  inputs:
    testAssemblyVer2: |
     **\*ID_Test*.dll
     !**\*TestAdapter.dll
     !**\obj\**
    searchFolder: '$(System.DefaultWorkingDirectory)/ID_Test'
    runSettingsFile: 'ID_Test/.runsettings'
    runInParallel: false
    runTestsInIsolation: true
    codeCoverageEnabled: false
    testRunTitle: 'Unit Tests'
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'
    diagnosticsEnabled: true
    rerunFailedTests: true
  continueOnError: true

繰り返しますが、これらのテストはすべてローカルで問題なく合格し、パイプラインで十分な回数実行すると最終的に合格します。したがって、問題はコード自体にあるとは思いません。テストが適切にセットアップまたはクリーンアップされていないようです。私は主に、この問題を修正するためにyamlまたはrunsettingsを構成できる他の方法に関するアイデアを探しています。よろしくお願いします。追加情報を提供できるかどうかお知らせください。

アンドリュー

これは私たちのテストの問題であることが判明しました。いくつかの場所では、ローカルで問題のない現在の時刻を使用しましたが、サーバーの実行時間がはるかに長く、いくつかのエラーが発生しました。ローカルでテストを実行するのと同様の実行時間を持つエージェントでパイプラインをテストすると、パイプラインに問題がないことがわかりました。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Dockerfileはローカルでビルドされますが、Azure DevopsパイプラインのCOPYステップで失敗します

分類Dev

Microsoft Azure devops pythonパイプラインが失敗し、Bashがコード「5」で終了しました

分類Dev

失敗したタスクでAzureパイプラインを続行する

分類Dev

GITベースのasp.netWebアプリは、typescriptコンパイルエラーでAzureへのデプロイに失敗します

分類Dev

Maven AppEngineのデプロイでAzureパイプラインが失敗しました

分類Dev

Azure DevOps:パイプラインビルドでBlazorのデプロイが失敗する

分類Dev

Azure Data Factoryは、失敗したパイプラインを自動的に再トリガーします

分類Dev

Azureパイプラインサブモジュールのクローン作成に失敗しました

分類Dev

Azure WebJobの開始/実行に失敗した場合、AzureDevOpsリリースパイプラインを失敗させることはできません

分類Dev

AzureパイプラインArchiveFilesアーカイブの作成に失敗しました

分類Dev

Docker ImageタスクをACRにプッシュすると、Azure DevOpsパイプラインで「unauthorized:authenticationrequired」で失敗します

分類Dev

Docker ImageタスクをACRにプッシュすると、Azure DevOpsパイプラインで「unauthorized:authenticationrequired」で失敗します

分類Dev

Azure-testhost.dllが原因でDevOpsパイプラインが失敗する

分類Dev

Azure DevOps Cloudformation更新スタックがパラメーターファイルの使用に失敗しました(## [error] ValidationError:パラメーター:テンプレートに存在しません)

分類Dev

AzureDevOpsビルドパイプライン-失敗したビルドは引き続きAzureにデプロイされます

分類Dev

AzureパイプラインタスクVSTest @ 2がエラーで失敗する-ファイルまたはアセンブリを読み込めませんでした 'Microsoft.VisualStudio.TestPlatform.Common.resources'

分類Dev

AzureパイプラインタスクVSTest @ 2がエラーで失敗する-ファイルまたはアセンブリを読み込めませんでした 'Microsoft.VisualStudio.TestPlatform.Common.resources'

分類Dev

Azure DevOpsリリースパイプラインで、最新バージョンを、しばらくの間リリースがプロモートされなかったステージにプロモートする方法は?

分類Dev

Azureリリースパイプラインでrevertは何をしますか?

分類Dev

Azure DevOpsは、スケジュールによる信頼性の低いトリガーをパイプラインで構築します

分類Dev

Microsoft.Azure.NotificationHubsインストールクラスwithExpirationTimeプロパティをnullでインストールしています

分類Dev

ランダムなSeleniumE2eテストは、Azure DevOpsのタイムアウトが原因で失敗しますが、ローカルおよびリモートのSeleniumで機能します(BrowserStack Automate)

分類Dev

Azure DevOpsリリースパイプラインで、異なるターゲットフォルダーを持つデプロイメントグループを複数のVMにどのようにデプロイしますか

分類Dev

MSFT Azureパイプラインはソース管理システムとしてBitbucketに接続し、ビルドアーティファクトをビルドしてオンプレミスサーバーにデプロイできますか?

分類Dev

AzureパイプラインDockerが複数のプロジェクトでコピーに失敗する

分類Dev

異なるコンテナーレジストリで新しいイメージが利用可能になったときに、Azure devopsビルドパイプラインをトリガーするにはどうすればよいですか?

分類Dev

Azureパイプラインがエラーを取得しています:[エラー]読み取り操作が失敗しました。Macでホストされているエージェントの内部例外を参照してください

分類Dev

プライベートホストエージェント(Azure DevOps)でDockerビルドが失敗する

分類Dev

Azure DevOps、パイプラインの解放、Powershellタスク:操作が成功した後でも失敗として表示される.tar.gzの抽出

Related 関連記事

  1. 1

    Dockerfileはローカルでビルドされますが、Azure DevopsパイプラインのCOPYステップで失敗します

  2. 2

    Microsoft Azure devops pythonパイプラインが失敗し、Bashがコード「5」で終了しました

  3. 3

    失敗したタスクでAzureパイプラインを続行する

  4. 4

    GITベースのasp.netWebアプリは、typescriptコンパイルエラーでAzureへのデプロイに失敗します

  5. 5

    Maven AppEngineのデプロイでAzureパイプラインが失敗しました

  6. 6

    Azure DevOps:パイプラインビルドでBlazorのデプロイが失敗する

  7. 7

    Azure Data Factoryは、失敗したパイプラインを自動的に再トリガーします

  8. 8

    Azureパイプラインサブモジュールのクローン作成に失敗しました

  9. 9

    Azure WebJobの開始/実行に失敗した場合、AzureDevOpsリリースパイプラインを失敗させることはできません

  10. 10

    AzureパイプラインArchiveFilesアーカイブの作成に失敗しました

  11. 11

    Docker ImageタスクをACRにプッシュすると、Azure DevOpsパイプラインで「unauthorized:authenticationrequired」で失敗します

  12. 12

    Docker ImageタスクをACRにプッシュすると、Azure DevOpsパイプラインで「unauthorized:authenticationrequired」で失敗します

  13. 13

    Azure-testhost.dllが原因でDevOpsパイプラインが失敗する

  14. 14

    Azure DevOps Cloudformation更新スタックがパラメーターファイルの使用に失敗しました(## [error] ValidationError:パラメーター:テンプレートに存在しません)

  15. 15

    AzureDevOpsビルドパイプライン-失敗したビルドは引き続きAzureにデプロイされます

  16. 16

    AzureパイプラインタスクVSTest @ 2がエラーで失敗する-ファイルまたはアセンブリを読み込めませんでした 'Microsoft.VisualStudio.TestPlatform.Common.resources'

  17. 17

    AzureパイプラインタスクVSTest @ 2がエラーで失敗する-ファイルまたはアセンブリを読み込めませんでした 'Microsoft.VisualStudio.TestPlatform.Common.resources'

  18. 18

    Azure DevOpsリリースパイプラインで、最新バージョンを、しばらくの間リリースがプロモートされなかったステージにプロモートする方法は?

  19. 19

    Azureリリースパイプラインでrevertは何をしますか?

  20. 20

    Azure DevOpsは、スケジュールによる信頼性の低いトリガーをパイプラインで構築します

  21. 21

    Microsoft.Azure.NotificationHubsインストールクラスwithExpirationTimeプロパティをnullでインストールしています

  22. 22

    ランダムなSeleniumE2eテストは、Azure DevOpsのタイムアウトが原因で失敗しますが、ローカルおよびリモートのSeleniumで機能します(BrowserStack Automate)

  23. 23

    Azure DevOpsリリースパイプラインで、異なるターゲットフォルダーを持つデプロイメントグループを複数のVMにどのようにデプロイしますか

  24. 24

    MSFT Azureパイプラインはソース管理システムとしてBitbucketに接続し、ビルドアーティファクトをビルドしてオンプレミスサーバーにデプロイできますか?

  25. 25

    AzureパイプラインDockerが複数のプロジェクトでコピーに失敗する

  26. 26

    異なるコンテナーレジストリで新しいイメージが利用可能になったときに、Azure devopsビルドパイプラインをトリガーするにはどうすればよいですか?

  27. 27

    Azureパイプラインがエラーを取得しています:[エラー]読み取り操作が失敗しました。Macでホストされているエージェントの内部例外を参照してください

  28. 28

    プライベートホストエージェント(Azure DevOps)でDockerビルドが失敗する

  29. 29

    Azure DevOps、パイプラインの解放、Powershellタスク:操作が成功した後でも失敗として表示される.tar.gzの抽出

ホットタグ

アーカイブ