【问题标题】:TFS vNext build Test Impact Analysis - always running all tests from some projects in the solutionTFS vNext 构建测试影响分析 - 始终运行解决方案中某些项目的所有测试
【发布时间】:2018-09-12 08:51:27
【问题描述】:

我有一个包含多个项目和测试项目的 C# Visual Studio 2017 解决方案,一个带有 VS 测试任务的 vNext 构建管道。 “仅运行受影响的测试”选项已启用。清除选项未选中。

我开始构建没有变更集(没有代码更改)。在测试代​​理的工作区中,我可以验证没有重建发生:项目引用、本地复制、构建前/后事件、如果较新则复制都很好。构建后不会替换任何程序集。

某些项目的测试未运行(这是正确的),但某些项目的测试始终运行。

这些测试项目的项目属性似乎相同。

有人建议去哪里看吗?

【问题讨论】:

  • 之前的测试有没有失败的测试?或者在上次构建期间生成的一些影响当前测试的新文件...
  • @AndyLi-MSFT,没有失败的测试,没有新文件,没有新程序集..
  • @KemalTaşkın - 我有一个 VB 解决方案,其中包含 1 个项目和相应的单元测试项目。 TIA 已启用。但是在代码签入期间,受影响的单元测试没有得到执行。如果我添加任何新方法然后编写相应的单元测试,那么 TIA 只是运行新的单元测试。你能帮帮我吗?

标签: tfsbuild vnext impact-analysis


【解决方案1】:

请确保在之前的构建/测试中没有失败的测试,并且在上次构建期间没有生成新文件来影响当前的构建/测试。

请参阅下面的链接以了解哪些测试会自动选择以及可以为测试影响分析调整测试选择的策略。

测试影响分析 (TIA) 将查看传入的提交,并选择一组相关测试——这些测试包含 3 个组件

(1) 受传入提交影响的现有测试。

(2) 此外,它还会选择以前失败的测试 – 如果不是,那么在几次提交的过程中,一些较早的失败 测试用例可能会丢失……因此,TIA 将跟踪 在先前构建中失败的测试并将它们包含在 选择。

(3) 它还将包括新添加的测试——如果你的提交 包含新的测试?这样的测试可以发现产品错误,对吧?所以, TIA 也会选择新添加的测试。

TIA 有:

(1) 稳健的测试选择——这包括现有的受影响测试, 以前失败的测试和新添加的测试。

(2) safe fall back – 适用于 TIA 无法执行的提交和场景 原因,它将安全地回退到运行所有测试(你可以 请参阅日志中提到的内容)。 TIA 目前仅限于 托管代码和单框拓扑。所以例如如果代码提交 包含对 HTML/CSS 文件的更改,它无法推理它们并且 将回退到运行所有测试。

(3) 可配置覆盖——您可以在配置的 周期性。

【讨论】:

  • 感谢您的回答。我当然读过这些文章,并且对 TIA 的工作原理有所了解。经过几天的检查,我找到了问题的原因,并将其写为答案。
【解决方案2】:

经过几天的检查,我找到了这个问题的原因。我正在分享这个,也许它可以帮助其他人。

VS 测试任务(实际上是其中的 vstest.console.exe)将结果发布到一个 trx 文件和一些包含测试依赖项的文本文件。

1) 如果您的测试名称相同(不区分大小写),则此发布工作不可靠。事实证明,我们有这样的测试(即 TestThisWhenStringIsTrue 和 TestThisWhenStringIsTRUE)。

2) 测试方法的全名 (..) 不应超过 256 个字符。在这种情况下,发布再次不可靠。

在重构测试后,TIA 开始工作。我希望这会有所帮助。

注意:在进行此步骤之前,您首先需要运行增量构建。

【讨论】:

    猜你喜欢
    • 2016-07-10
    • 2013-07-26
    • 2012-02-22
    • 2012-10-21
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多