在构建定义Team Foundation Server 2015中运行/排除特定测试

时间:2016-04-22 12:49:27

标签: tfs xunit tfs2015

在我们的一个构建定义中,我试图配置一个' Visual Studio测试'构建步骤以运行一组特定的测试。

有一个'测试过滤器标准'框(下图),但这似乎没有任何影响,无论如何运行所有测试。它不像VS2015中的测试资源管理器中的搜索过滤器框,并且有一些对“TestCaseFilter”的引用。但这不适用于此(可能只是TFS2012)。

TFS build definition Visual Studio Test configuration

这可以用于实际过滤测试,还是应该以其他方式进行(例如提供设置文件?)

FWIW我们正在使用Xunit进行单元测试。

4 个答案:

答案 0 :(得分:5)

如果目标是从可以通过

完成的运行中排除测试测试
  

TestCategory!={name}

在我的情况下,我通常使用Integration或Manual来指示非CI测试,因此我的过滤器是

  

TestCategory!=Integration&TestCategory!=Manual

答案 1 :(得分:2)

“测试筛选条件”字段是筛选测试的最佳方式。您必须在测试中添加属性才能对测试进行分类。以下是解释此功能的帖子:

https://dotnetcatch.com/2016/03/11/vststfs-visual-studio-test-task-filter-criteria/

答案 2 :(得分:1)

测试筛选条件从测试程序集文件中筛选测试。此选项与控制台选项/TestCaseFilter of vstest.console.exe的工作方式相同,您可以使用vstest.console.exe命令行测试它是否有效。

作为替代方案,您可以在测试程序集中指定测试。该字段指定应从中挑选测试的测试组件。

  • 可以使用通配符
  • 可以用分号
  • 分隔多个路径
  • 路径相对于源目录

答案 3 :(得分:1)

对于那些具有更具体问题的人(比如我),必须排除某个项目的所有测试,请在"测试程序集中使用以下语句"字段:

!**\*[ProjectName]*.dll

就我而言,我有一个包含大量UI测试的项目,这些测试被设置为单元测试。最初,代理也会尝试运行这些测试,而它们只应在特定版本上运行。修复的一个例子:

Fix example

这确保忽略该项目中的所有测试,即使dll包含" tests"在名称中。