2012-10-05 3 views
1

새로운 팀 시티 서버에서 specflow 워틴 테스트를 실행하려고 시도 중입니다. 문제는 appuntstate STA에서 테스트를 실행하기 위해 내장 된 nunit 러너를 얻을 수 없다는 것입니다. 이 설정에 데리러 것TeamCity SpecFlow NUnit Watin 및 ApartmentState STA

<NUnit> 
    <TestRunner> 
     <add key="ApartmentState" value="STA" /> 
    </TestRunner> 
</NUnit> 

그러나 인 TeamCity NUnit과 테스트 러너 나던 :

우리는 다른 testrunners 작동 이전에이 구성을 사용했다. 우리는 다른 설정 온 전성 테스트를 실시 했으므로 테스트 러너가 테스트 프로젝트의 구성을 atleast 이상 읽는 것을 알고 있습니다.

은과 같이 속성 RequiresSTA를 사용하는 다른있다 :

[Test, RequiresSTA] 
public void ShouldRunThreadApartmentStateSTAWith() 
{ 
    Assert.AreEqual(ApartmentState.STA, Thread.CurrentThread.GetApartmentState()); 
} 

을하지만 NUnit과 테스트를 SpecFlow에 의해 생성되기 때문에, 나는이 속성을 설정하는 방법을 제어 할 수 없습니다.

어떻게이 설정을 사용할 수 있습니까?

답변

2

답을 찾았습니다.

AssemblyInfo.cs에서 RequireSTA 특성을 설정하면 구성이 폐기됩니다. SpecFlow 의해 생성

[assembly:RequiresSTA] 
3

NUnit을 테스트하므로 단순히의 특성이 다른 파일의 다른 부분 클래스 정의를 생성하는 부분적인 클래스 정의된다.

+0

감사합니다. 나를 위해 고정 문제. NUnit, Specflow 및 NCrunch를 사용하고 STA 스레드 문제가 발생했습니다. [assembly : RequiresSTA]/[assembly : Apartment (ApartmentState.STA)]를 통해 속성을 추가하려고 시도했지만 작동하지 않았습니다. 그러나 [Apartment (ApartmentState.STA)]를 추가하면 효과가있었습니다. – pandrew