【问题标题】:TFS Build vnext build failing with no failed testsTFS 构建 vnext 构建失败,没有失败的测试
【发布时间】:2018-11-17 10:05:48
【问题描述】:

我的 TFS 构建似乎间歇性地失败,我还不能弄清楚原因。由于某种单元测试失败,它似乎失败了,但没有出现任何失败的测试。例如,报告构建失败,我看到以下错误:

Error: C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe failed with return code: 1 Vstest exited with return code: 1.

这是我在这个“失败”构建的测试摘要中看到的:

然后我会在下次运行时看到相同的构建成功。没有添加或删除触发这些构建的新测试:

【问题讨论】:

  • 选择所有结果并检查其他 10 中发生的情况。那里可能有我的线索。它真的在测试步骤或构建的其他步骤中失败了吗?
  • 比较并找到在第二次构建中成功但在第一次构建中未执行的 4 个测试。
  • @ChamindaC 其他 10 个测试是使用 [Ignore] 属性跳过的测试
  • @ColeW 您的第一次测试中似乎有 4 个测试没有运行,您可以分享整个测试步骤的日志吗?
  • @CeceDong-MSFT 测试步骤的日志相当长。我已经弄清楚失败的构建和通过的构建之间有哪些不同的测试,但我不确定我在这里看到了什么对我有帮助的东西。有什么特别的地方你想让我发布这个日志,因为它相当长,我不想把它包含在我的帖子中。

标签: tfs tfsbuild


【解决方案1】:

您可以在测试任务之后添加构建任务,并选择条件Run this task only when a previous task has failed。此外,在此任务中指定 msbuild 参数 /t:Clean 以清理构建:

【讨论】:

  • 我喜欢这个想法,但是当你在增量构建中删除一个测试项目并且它不再是解决方案的一部分时会发生什么。我在这里的假设是这些 dll 仍然存在于构建服务器上的构建输出文件夹中。在这里手动删除任务会更好吗?我正在通过以下方式从 artifacts 文件夹运行我的测试:$(Build.ArtifactStagingDirectory)\**\*.Test.dll
  • 您可以添加Delete files 删除文件的任务:docs.microsoft.com/en-us/vsts/pipelines/tasks/utility/…
猜你喜欢
  • 2010-11-28
  • 1970-01-01
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
  • 2016-08-05
相关资源
最近更新 更多