2011-09-07 35 views

回答

0

除了瓦倫丁的答案。這是測試生成器的an example,它將添加到測試環境中。它來自同一個Google小組。

GáspárNagy表示可能會將其添加到提供specflow的提供商。

所以要回答OP的問題,是的,這是可能的。

5

我找到了一種方法將參數傳遞給TestContext,然後從SpecFlow訪問它們。

通過添加具有TestContext屬性並將其AssemblyInit()方法標記爲[AssemblyInitialize]的[TestClass],以便在runnig之前儘早初始化測試,並且MSTest將能夠填充TestContext。

{ 
    [TestClass] 
    public class InitializeTestContext 
    { 
     public static TestContext Context { get; private set; } 

     [AssemblyInitialize] 
     public static void AssemblyInit(TestContext context) 
     { 
      Context = context; 
     } 
    } 
} 

然後可以從我的BaseSteps類訪問:

{ 
      public abstract class BaseSteps : TechTalk.SpecFlow.Steps 
      { 
       public string GetTestEnvironment() 
       { 
        TestContext testContext = InitializeTestContext.Context; 

        string testEnvironment = testContext.Properties["Environment"].ToString(); 

        return testEnvironment; 
       } 
      } 
} 
+0

好傢伙!我一直試圖弄清楚這麼久......這樣一個簡單而又好的解決方案!非常感謝。 (如果我可以的話:+25)。也是在原來的問題哈哈6年後。 – JCisar

+0

我爲此創建了一個nuget包,如果你想查看它: https://www.nuget.org/packages/SpecFlow.MSTest.TestContext – JCisar

相關問題