2017-01-02 122 views
0

需要你的帮助在以下情形:运行多个测试相同的不同测试方法构建项目

  • 我有2个项目,不同单位的解决方案测试
  • 这些项目产生2个不同的dll:*部署。 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运行良好。

(UPDATE)方案1个

测试用例筛选: TestCategory = TEST1 | TestCategory = TEST1 | TestCategory = TEST2 | TestCategory = TEST3 | TestCategory = TEST4

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

仅运行测试1


(UPDATE)方案2

测试用例筛选: TestCategory = TEST1 | TestCategory = TEST1 | TestCategory = TEST2 | TestCategory = TEST3 | TestCategory = TEST4

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

只运行TEST2,TEST3,TEST4

(UPDATE)不Database.dll enter image description here

+1

由于没有使用过滤器,但将两个组件,测试运行?这些测试的实现技术是什么,mstest?什么版本的TFS?什么版本的VS? (请调整标签以更加精确)。这些类别如何应用?在测试级别?课堂级别?命名空间级别? – jessehouwing

+1

你正在使用哪种构建系统? XAML或新的TFS 2015/2017类型构建? – jessehouwing

+0

假设您使用XAML构建,我无法在我身上重现您的问题。你可以检查jessehouwing的问题,并提供更多的细节。 –

回答

0

最后,它解决了:)

所以,我做了什么来解决这个问题,就是,改变构建过程模板。

有在该过程中的一个步骤,称:“FindMatchingFiles”

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

如果你有不同的解决方案,请张贴在这里:)

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

enter image description here

0

找到测试我在TFS 2015.3,XAML构建测试,但无法重现您的问题。我想在这里分享我的步骤,供大家参考:

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

    enter image description here

  2. 在UnitTest1项目,我添加TestCategory两个测试情况下,检查下面的截图:

    [TestMethod()] 
    [TestCategory("Pro")] 
    public void M1Test() 
    { 
        // 
    } 
    
    [TestMethod()] 
    [TestCategory("Dev")] 
    public void M2Test() 
    { 
        // 
    } 
    
  3. 类似第二步,在UnitTest2项目,我添加TestCategory了两个测试的情况下,检查下面的截图:

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

enter image description here

  1. 如预期的测试结果。在UnitTestProject1中只测试M1Test和M2Test,在UnitTestProject2中测试M3Test和M4Test。
+0

嗨Cece,我提出了你的建议,最初我有** \ * database.dll; ** \ *部署,我改为* database.ddl; * deployment.dll,现在,TEST1运行良好,另一个测试不运行。 我更改为* database.dll; ** \ * deployment.dll并给我一个错误: 访问路径'C:\ Windows \ system32 \ config \ systemprofile \ AppData \ Local \ Microsoft \ Windows \ INetCache \ Content .IE5'被拒绝 你知道会发生什么吗? – HLourenco

+0

* deployment.dll和* database.dll的全名是什么?** \ * deployment.dll; ** \ * database.dll怎么样? –

+0

Hermes.Gold.Deployment.dll Hermes.Gold.Database.dll 这可能是流程模板上的错误吗?因为它似乎只捕获我在测试来源规范中插入的程序集... 如何在TestSpecList中使用foreach? – HLourenco