gpt4 book ai didi

unit-testing - Azure DevOps 管道 : Tests that pass locally fail on the pipeline

转载 作者:行者123 更新时间:2023-12-04 03:50:22 24 4
gpt4 key购买 nike

我们的团队正在尝试实现 Azure DevOps 管道,但我们遇到了一些问题。作为背景,我们在自托管的 Windows 服务器上运行测试。我们对所有工作进行了前端测试,但现在我们遇到了让后端通过的问题。
虽然大多数测试都通过得很好,但我们有一些实例没有按预期工作。尽管它们应该能够并行运行,但我将其关闭以验证这不是问题所在。我也试过在没有任何明显变化的情况下单独运行它们。
我们得到的错误只是简单的断言失败,如下所示,没有给我们太多信息。

 Error Message:
Assert.AreEqual failed. Expected:<True>. Actual:<False>.
但是行号指向一个模拟设置,如下所示,我不明白。
mockQueryHandler.Setup(x => x.Handle(It.IsAny<FindQuery>())).Returns(info);
目前给我们带来最多问题的测试类是测试我们的事件警报功能的测试类。似乎第一个测试会通过,但随后的测试失败了。但是,我们有管道设置来重新运行任何失败的测试 3 次,直到它放弃。因此,在每次重新运行时,下一次测试都会通过。我唯一能想到的是我们的汽车模拟出于某种原因给我们带来了麻烦。我们按照
AutoMock - How to unit test with Keyed Registrations?
我们模拟如下:
  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 以尝试解决此问题的其他方式的任何想法。预先感谢您提供任何帮助,如果我可以提供任何其他信息来提供帮助,请告诉我。

最佳答案

原来这只是我们测试的一个问题。在一些地方,我们会使用在本地很好的当前时间,但是服务器的执行时间要长得多,这会产生一些错误。在执行时间与在本地运行测试相似的代理上测试管道帮助我发现这不是管道的问题。

关于unit-testing - Azure DevOps 管道 : Tests that pass locally fail on the pipeline,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64502381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com