从不同的测试项目运行多个测试相同的构建

时间:2017-01-02 21:38:36

标签: visual-studio unit-testing tfs tfsbuild vstest

在以下情况中需要您的帮助:

  • 我有一个包含2个不同单元测试项目的解决方案
  • 这些项目生成2个不同的dll:* deployment.dll和* database.dll
  • 我有一个基于TFS的构建,我想用它来运行这些测试,我使用"测试用例过滤器"过滤我的测试类别

    (TestCategory=TEST1|TestCategory=TEST2|TestCategory=TEST3|TestCategory=TEST4) 
    

    和"测试来源规范"我正在过滤这两个dll(*deployment.dll;*database.dll

  • *。deployment.dll包含TEST2,TEST3,TEST4
  • *。database.dll具有TEST1

这不起作用,* database.dll的测试无法运行。在Visual Studio Test Runner中选择的测试

你能帮忙吗?如果我只使用1个dll进行构建,例如* .database.dll,则TEST1运行良好。

(更新)情景1

测试用例过滤器: TestCategory = TEST1 | TestCategory = TEST1 | TestCategory = TEST2 | TestCategory = TEST3 | TestCategory = TEST4

测试源规范: * database.dll; * deployment.dll

仅运行TEST1

(更新)情景2

测试用例过滤器: TestCategory = TEST1 | TestCategory = TEST1 | TestCategory = TEST2 | TestCategory = TEST3 | TestCategory = TEST4

测试源规范: ** \ * deployment.dll; * database.dll

仅运行TEST2,TEST3,TEST4

(更新)在Database.dll 中找不到测试 enter image description here

2 个答案:

答案 0 :(得分:0)

我已在TFS 2015.3,XAML版本中测试过,但无法重现您的问题。我想在此分享我的步骤供您参考:

  1. 我有一些项目的解决方案,其中2个是UnitTest项目(UnitTestProject1,UnitTestProject2)。

    enter image description here

  2. 在UnitTest1项目中,我为两个测试用例添加了TestCategory,查看下面的截图:

    [TestMethod()]
    [TestCategory("Pro")]
    public void M1Test()
    {
       //
    }
    
    [TestMethod()]
    [TestCategory("Dev")]
    public void M2Test()
    {
        //
    }
    
  3. 与Step2类似,在UnitTest2项目中,我为两个测试用例添加了TestCategory,查看下面的截图:

    [TestMethod()]
    [TestCategory("Pro1")]
    public void M3Test()
    {
       //
    }
    
    [TestMethod()]
    [TestCategory("Dev1")]
    public void M4Test()
    {
        //
    }
    
  4. 在构建定义中编辑“测试用例过滤器”和“测试源规范”,如下面的屏幕截图和队列构建:

  5. enter image description here

    1. 测试结果与预期一致。仅测试UnitTestProject1中的M1Test和M2Test,以及UnitTestProject2中的M3Test和M4Test。

答案 1 :(得分:0)

最后,它已经解决了:)

所以,我为解决这个问题所做的就是改变构建过程模板。

此过程中有一步,调用:" FindMatchingFiles"

我更改了此值,如下图所示。 (但是,从现在开始,我必须在所有使用此流程模板的过滤器中使用" ** \ *")。此操作确保我具有完整目标完成的程序集。

如果您有不同的解决方案,请在此处发布:)

特别感谢@Cece - MSFT获取所有支持

enter image description here