2017-12-13 15 views
0

specflow 테스트를 실행하기 위해 Visual Studio에서 .runsettings 파일을 사용합니다. 특정 매개 변수가 구성되었습니다. specflow 테스트 메소드에서 사용하려면 런타임에 해당 매개 변수 값에 액세스해야합니다. 다음과 같이 TestContext를 통해 액세스하려고 시도했습니다.specflow 테스트에서 테스트 실행 설정 매개 변수 값을 읽는 방법?

아래와 같이 런타임에 testcontext 인스턴스에 대한 예외가 표시됩니다. "System.NullReferenceException :"개체 참조가 개체의 인스턴스로 설정되지 않았습니다. "

환경 비주얼 스튜디오 엔터프라이즈 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