배경
과 같이 내가 ITestAction
속성 내에서 각 테스트의 결과/결과를 알고 필요에 일하고 있어요 NUnit과 프레임 워크의 확장 :병렬 테스트에서 NUnit TestContext.CurrentContext를 사용해도 안전합니까?
public class MyFrameworkExtensionAttribute : Attribute, ITestAction
{
public void BeforeTest(ITest test)
{ /* Omitted, not relevant to this question */ }
public void AfterTest(ITest test)
{
var result = TestContext.CurrentContext.Result;
var resultIsSuccess = result.Outcome.Status == TestStatus.Passed;
// Then go on to do stuff with that resultIsSuccess variable
}
}
참고 AfterTest
의 첫 번째 행 방법; 정적 참조를 사용하고 있습니다 : TestContext.CurrentContext. ITest
인터페이스는 테스트 결과를 노출하지 않으므로 테스트 컨텍스트가 유일한 방법 인 것 같습니다.
그리고 지금은 내 질문에 질문
- NUnit과 3.x를이ParallelizableAttribute
를 통해 병렬 테스트를 실행하는 기능이 포함되어 있기 때문에 - 궁금 해요 : 그것은 현재 테스트 컨텍스트에 대한 정적 참조를 사용하는 것이 안전합니까? 여기서 걱정해야 할 스레드 안전 문제가 있습니까? 정적 참조에 의지하지 않고 테스트 결과를 얻는 더 좋고/더 강력한 방법이 있습니까?
중요한 경우를 대비하여 NUnit 프레임 워크 3.7.1을 사용하고 있습니다.