TFS vNext构建测试影响分析 - 始终运行解决方案中某些项目的所有测试

问题描述 投票:1回答:2

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

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

某些项目的测试没有运行(这是正确的),但总是运行一些项目的测试。

这些测试项目的项目属性看起来完全相同。

有没有人建议去哪儿看?

tfsbuild vnext impact-analysis
2个回答
0
投票

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

请参阅以下链接,了解自动选择的测试内容以及可以为测试影响分析选择测试选择的策略。

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

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

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

(3)它还将包括新添加的测试 - 如果您的提交包含新测试怎么办?这样的测试可以发现产品错误,对吗?因此,TIA也将选择新增的测试。

TIA有:

(1)强大的测试选择 - 包括现有的受影响的测试,先前失败的测试和新增的测试。

(2)安全回退 - 对于TIA无法推理的提交和场景,它将安全地回退到运行所有测试(你可以看到日志中提到的)。 TIA目前仅限于托管代码和单机拓扑。因此对于例如如果代码提交包含对HTML / CSS文件的更改,则无法对其进行推理,并将回退到运行所有测试。

(3)可配置的覆盖 - 您可以在配置的周期内运行“所有”测试。


0
投票

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

VS Test任务(实际上是vstest.console.exe)将结果发布到trx文件和包含测试依赖关系的许多文本文件。

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.