我有一个包含多个项目和测试项目的C#Visual Studio 2017解决方案,一个带有VS Test任务的vNext构建管道。启用了“仅运行受影响的测试”选项。清除选项未选中。
我没有任何变更集(没有代码更改)开始构建。在测试代理的工作空间中,我可以验证没有发生重建:项目引用,“复制本地”,之前/之后的构建事件,“如果更新较新则可以复制”。构建后不会替换任何程序集。
某些项目的测试不会运行(这是正确的),但是某些项目的测试始终会运行。
这些测试项目的项目属性似乎相同。
有人建议去哪里看吗?
答案 0 :(得分:0)
请确保在先前的构建/测试中没有失败的测试,并且在上次构建期间没有任何新文件生成来影响当前的构建/测试。
请参考以下链接以了解哪些是自动选择的测试以及可以限制测试影响分析的测试选择的策略。
测试影响分析(TIA)将查看传入的提交,并选择一组相关的测试-这些测试将包含3个组成部分
(1)受传入提交影响的现有测试。
(2)另外,它还将选择以前失败的测试 – 如果没有,那么在几次提交的过程中,一些较早的失败 测试用例可能只是迷路了…因此,TIA将跟踪 在先前版本中失败的测试,并将其包含在 选择。
(3)它还将包括新添加的测试-如果您提交 包含新测试?这样的测试可能会发现产品错误,对吗?所以, TIA还将选择新添加的测试。
TIA具有:
(1)可靠的测试选择-包括现有受影响的测试, 先前失败的测试和新添加的测试。
(2)安全后退 –适用于TIA无法执行的提交和方案 原因,它将安全地退回到运行所有测试(您可以 请参阅日志中提到的内容)。 TIA目前仅适用于 托管代码和单盒拓扑。所以例如如果代码提交 包含对HTML / CSS文件的更改,无法对其进行推理,并且 将退回到运行所有测试。
(3)可配置的替代–您可以在已配置的配置下运行“所有”测试 周期性。
答案 1 :(得分:0)
经过几天的检查,我找到了造成此问题的原因。我正在分享这个消息,所以也许对其他人有帮助。
VS测试任务(实际上是vstest.console.exe)将结果发布到trx文件和许多包含测试依赖项的文本文件中。
1)如果您的测试名称相同(不区分大小写),则此发布工作不可靠。事实证明,我们进行了这样的测试(即TestThisWhenStringIsTrue和TestThisWhenStringIsTRUE)。
2)测试方法(..)的全名不得超过256个字符。在这种情况下,发布将再次无法正常运行。
重构测试后,TIA开始工作。我希望这会有所帮助。
注意:在执行此步骤之前,您首先需要使增量构建正常运行。