如何在TFS Build期间显式排除测试运行器中的程序集

时间:2015-11-20 08:53:06

标签: c++ unit-testing tfs

在我的解决方案中,我将c ++和c#项目与相应的单元测试项目混合在一起。在TFS构建期间,我只想执行C#单元测试。不幸的是,我找不到一种方法来排除在单元测试运行器中使用的这些测试组件。我可以根据Native.Tests.dll等命名模式识别所有c ++单元测试项目。

我找不到明确排除某些测试程序集从测试运行程序中测试/执行的方法。

是否有办法通过

  • 测试用例过滤器
  • 测试程序集文件规范?

环境:

  • TFS 2013
  • 流程模板:ReleaseTfvcTemplate.12.xaml

如果您想知道:为什么我要排除某些程序集?

我想使用“测试类别”功能排除在构建服务器上执行某些单元测试,您可以通过TFS模板中的TestCaseFilter功能执行此操作。您可以为每个“测试批次”指定。当我在一个测试设置中运行所有单元测试(c#+ c ++)时,本机单元测试会抛出错误,因为它们不理解/不支持TestCategory-filter功能(请记住:测试用例过滤器)。因此,我想将它分成2个测试运行/批次:c ++和c#。

1 个答案:

答案 0 :(得分:0)

测试类别仅适用于C#测试项目。 (在我的环境中测试:TFS2015 VS2015)

如果您只想执行C#单元测试。最简单的方法是在Test assembly文件规范中指定C#测试程序集文件。 您只需要根据与C ++测试项目完全不同的命名模式来识别所有C#单元测试项目。

注意:您必须确保在C ++和C#测试项目之间使用完全不同的命名规则。

例如:

C++test project name : including  ABC  like ABC1 ,ABC2, ABC3

C# test project name: including  XYZ  like XYZ1, XYZ2 ,XYZ3

然后在测试程序集文件规范中使用*** XYZ * .dll来运行所有C#测试项目。