1

是否可以在 Microsoft 测试管理器中通过 SpecFlow 标签选择测试用例?如果是这样,怎么办?

4

1 回答 1

2

SpecFlow 中的标签在生成的代码中被转换为 TestCategory 属性。据我所知(直到一年前还与 MTM 合作)您可以:

  1. 使用按类别在 TestCategory 上过滤的 MSTest 执行测试
  2. 使用 TestCaseFilter 在 TestCategory 上过滤的 VSTest.Console 执行测试
  3. 将测试用例导入在 TestCategory 上过滤的 MTM

使用最后一个选项,您可以用一点创意创建一组测试计划,其中包含按测试类别排序的不同测试。恐怕这是您在不围绕 MTM 编写自己的包装器的情况下所能做的最好的事情。TestCategory 信息在 TFS 中可用,但在 MTM 中不向用户公开。

编辑

评论后澄清事情。
鉴于此功能文件:

@timtim
Feature: MSTest Tags Test
    In order to get feedback at the right time
    As a test automation specialist
    I want to categorize my tests and run them accordingly

@Jabberwocky @manxome
Scenario: A test with tags
    Given 'twas brillig
    When gyre and gimble in the wabe
    Then all mimsy were the borogoves

它生成到以下代码:

[Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]
[Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("A test with tags")]  
[Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "MSTest Tags Test")]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestCategoryAttribute("timtim")]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestCategoryAttribute("Jabberwocky")]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestCategoryAttribute("manxome")]
public virtual void ATestWithTags()
{
    TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("A test with tags", new string[] {
                "Jabberwocky",
                "manxome"});
    #line 8
    this.ScenarioSetup(scenarioInfo);
    #line 9
    testRunner.Given("\'twas brillig", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Given ");
    #line 10
    testRunner.When("gyre and gimble in the wabe", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "When ");
    #line 11
     testRunner.Then("all mimsy were the borogoves", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
    #line hidden
    this.ScenarioCleanup();
}

该场景变成了一个(由 MSTest.exe 提供的)可执行测试方法,其中包含三个 TestCategories timtimJabberwockymanxome。这些与文章中提到的测试类别相同。Coded UI 确实有一个 Test Category 属性,可用于对测试进行排序,但这个类别归结为使用相同的TestCategory属性

于 2015-08-24T19:05:01.930 回答