0

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

  • 我有一个包含 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 测试运行程序中选择的测试

你能帮忙吗?如果我只使用 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 中找不到测试 在此处输入图像描述

4

2 回答 2

0

我已经在 TFS 2015.3、XAML 构建中进行了测试,但无法重现您的问题。我想在这里分享我的步骤供您参考:

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

    在此处输入图像描述

  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. 在构建定义中编辑“测试用例过滤器”和“测试源规范”,如下面的屏幕截图并排队构建:

在此处输入图像描述

  1. 测试结果符合预期。仅测试 UnitTestProject1 中的 M1Test 和 M2Test,UnitTestProject2 中的 M3Test 和 M4Test。
于 2017-01-04T08:48:35.430 回答
0

终于解决了:)

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

这个过程有一个步骤,调用:“FindMatchingFiles”

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

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

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

在此处输入图像描述

于 2017-01-06T15:12:31.973 回答