2016-04-22 78 views
5

在我们的一个构建定义中,我试图配置'Visual Studio Test'构建步骤来运行特定的一组测试。在Build Definition Team Foundation Server 2015中运行/排除特定测试

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

TFS build definition Visual Studio Test configuration

这能用来实际筛选测试,或者我应该做一些其他的方式(例如提供一个设置文件?)我们使用的xUnit我们的单元测试

FWIW。

+0

是12月了,它必须和'TestCategory工作构建= BuildTime'测试设置,当我有'[TestCategory(“BuildTime”)]''标记我的测试。 – SayusiAndo

回答

1

测试筛选条件从测试组件文件中过滤器的测试。该选项与控制台选项/TestCaseFilter of vstest.console.exe的工作方式相同,可以使用vstest.console.exe命令行进行测试,以查看其是否有效。

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

  • 可以使用通配符可以被指定
  • 多个路径由分号分隔如果目标是从排除的测试的测试
  • 路径相对于所述源指南
+0

尽管这并不能解释为什么测试过滤条件不起作用,但将测试移动到单独的程序集中,然后使用“测试程序集”过滤器确实按预期工作,并且是可以接受的解决方法。另一种方法是建立独立的构建配置并使用预处理器语句来启用/禁用测试。 – MJF

2

测试过滤条件字段是过滤测试的最佳方式。你必须添加一个属性到你的测试中来分类你的测试。下面是帖子,说明此功能:

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

+0

我没有'TestCategory'可用,就像那个帖子在代码示例中那样...我想知道这是否仅适用于'mstest'?我们正在使用xUnit,它可能有不同的语法来过滤...我仍然试图让我的头脑围绕这些测试框架。 – MJF

+0

对不起,你没有提到你使用nUnit。基于这篇文章,nUnit也应该使用“Category”属性来支持。 https://blogs.msdn.microsoft.com/visualstudioalm/2013/06/11/part-3-unit-testing-with-traits-and-code-coverage-in-visual-studio-2012-using- -tfs-build-and-the-new-nuget-adapter-approach/ – chief7

+0

我没有提到nUnit ......但是提到我在原始问题中使用了xUnit :)我会看看那篇文章... – MJF

0

运行可通过

TestCategory!={name}

完成

在我来说,我通常使用集成或手动表示非CI测试,所以我的过滤器是

TestCategory!=Integration&TestCategory!=Manual