2017-12-13 13 views
0

ビジュアルスタジオで.runsettingsファイルを使用して、specflowテストを実行します。特定のパラメータが設定されています。私は実行時にこれらのパラメータ値にアクセスして、specflowテストメソッドで使用する必要があります。私は以下のように実行時にtestcontextインスタンスの例外を取得していますspecflowテストのテスト実行設定パラメータ値を読み取る方法は?

[ClassInitialize] 
    public static void Initialize(TestContext testContext) 
     {    
      var value= 
      Convert.ToString(testContext.Properties["testParameter1"]); 
     } 

以下のようTestContextを経由して、それらにアクセスしてみました。 "System.NullReferenceException: 'オブジェクト参照がオブジェクトのインスタンスに設定されていません。'"

環境 Visual Studioのエンタープライズ2017 Specflow 2.2.1 ユニットテストプロバイダは:

MSTESTこのコードは、働いていましたMicrosoft Unit Testプロジェクトで使用しています。 specflowテストのテスト実行設定ファイルから値を読み取る方法は? runsettingsパラメータにアクセスする他の方法はありますか?

答えて

1

TestContext上にあるので、そのインスタンスが必要です。

あなたはDI経由でそれを得ることができます。

[When(@"I do something")] 
public void WhenIDoSomething() 
{ 
    var textContext = ScenarioContext.Current.ScenarioContainer.Resolve<Microsoft.VisualStudio.TestTools.UnitTesting.TestContext>(); 
} 

コンプリート例:https://github.com/techtalk/SpecFlow/blob/master/Tests/TechTalk.SpecFlow.Specs/Features/MsTestProvider.feature#L43

しかし、それは現在(https://github.com/techtalk/SpecFlow/issues/936

+0

ありがとう@Andreas BeforeScenarioフックでは動作しませんので、注意してくださいウィリッヒ。それが助けになりました。 – Nandakumar1712

関連する問題