2017-03-21 2 views
0

저는 현재 Nunit을 사용하여 자동화 프레임 워크를 구축하고 있습니다. 모든 것이 잘 작동하고 있으며, 테스트 할 수 있도록 자동화 된 테스트 스크립트를 매핑 할 수있는 능력이 필요합니다. 내 테스트 소프트웨어의 사례.Nunit으로 Testcase ID를 매핑하십시오.

모든 테스트 케이스에 대해 TestRail을 사용하고 있습니다.

나의 이상적인 상황은 각 테스트 케이스를 테스트 레일에있는 해당 테스트 케이스 ID로 장식 할 수 있고 TestRail에서 테스트 결과를보고 할 때 Case ID를 사용할 수있다. 현재 나는 테스트 이름/스크립트 이름을 일치시켜 이것을 수행하고있다.

예 -

[Test] 
[TestCaseId("001")] 
    public void NavigateToSite() 
    { 
     LoginPage login = new LoginPage(Driver); 
     login.NavigateToLogInPage(); 
     login.AssertLoginPageLoaded(); 
    } 

과 같은 다음 내 분해 방법에있어서,이 볼 수있는 작품 - 난 그냥 testcaseid 속성을했습니다

[TearDown] 
public static void TestTearDown(IWebDriver Driver) 
    { 
     var testcaseId = TestContext.CurrentContext.TestCaseid; 
     var result = TestContext.CurrentContext.Result.Outcome; 

     //Static method to report to Testrail using API 
     Report.ReportTestResult(testcaseId, result); 
    } 

,하지만이 난 것입니다 찾고.

[TestCaseId ("001")]

이 이미 존재하는 경우, 나는이를 놓친 수도 있고, 어떻게에 대한 가능성이 작업을 수행 할 NUnit를 확장 가야합니까?

도움이 될 것입니다.

감사합니다.

답변

1

NUnit에서 제공하는 PropertyAttribute을 사용할 수 있습니다.

예 : - : 테스트 자체에 테스트 관리 코드를 함께 사용자 정의 속성 속성을 만들 수 있습니다 또한

[Property("TestCaseId", "001")] 
[Test] 
public void NavigateToSite() 
{ 
... 
} 

[TearDown] 
public void TearDown() 
{ 
    var testCaseId = TestContext.CurrentContext.Test.Properties["TestCaseId"]; 
} 

몇 년 동안 NUnit link

+0

감사합니다. Sulo, 정확히 내가 찾고 있던 것입니다. 나는 결코 속성 속성을 보지 못했습니다. – Kpizzle

0

를보고 난 사람들 하지이 작업을 수행하는 것이 좋습니다. 이것은 단일 책임 원칙에 대한 명백한 위반이며 시험을 유지하는 데 어려움을 낳습니다.

또한 TearDown에 표시된 결과가 최종이 아닐 수 있습니다. 예를 들어, 테스트에 [MaxTime]을 사용하고 지정된 시간을 초과하면 성공적인 테스트가 실패로 변경됩니다. 다른 여러 가지 기본 제공 특성은 이러한 방식으로 작동하며 물론 항상 사용자가 만든 특성의 가능성이 있습니다. TearDown의 목적은보고 또는 테스트 관리 시스템을 만드는 발판이 아닌 코드를 정리하는 것입니다.

즉, 이전 버전의 NUnit에서는 사람들이 이렇게하는 습관을 갖게되었습니다. 이는 부분적으로 NUnit addins (우리가 설계 한 접근법)가 작성하는 것이 상당히 복잡했기 때문입니다. NUNit V2는 테스트 측면에서 확장 성이 크게 떨어 졌기 때문에 문제도 적었습니다. 3.0에서는 NUnit 엔진의 확장 기능과 같은 테스트 관리 기능을 생성 할 수있는 방법을 제공 했으므로 테스트 코드와 함께 사용하지 말고 해당 기능을 사용하는 것이 좋습니다.

일반적으로 Sulo의 답변에서 제안한 것처럼 속성을 만드는 것이지만 TearDown 코드를 결과를 TestRail에보고하는 EventListener 확장으로 대체하는 것이 일반적입니다.EventListener는 TestContext에서 사용할 수있는 제한된 필드가 아닌 XML 형식의 모든 결과 정보에 액세스 할 수 있습니다. TestRail에 갈 필요가있는 항목은 쉽게 추출 할 수 있습니다. 쓰기 TestEngine 확장의

자세한 내용은 여기 발견 : 우리가 작업중인 비주얼 스튜디오 어댑터에서 확장 기능을 사용하려면 몇 가지 뛰어난 문제입니다 https://github.com/nunit/docs/wiki/Writing-Engine-Extensions

참고. 지금 당장은 콘솔 러너를 사용하여 최상의 경험을 얻을 수 있습니다.

+0

@Charlie의 답장을 보내 주셔서 감사합니다. 저는 C# (개발 전반)과 자동화 테스트에 대해 상당히 익숙합니다. 따라서 이러한 작업을 수행하는 방법을 즉시 배우고 있습니다. 나는 당신의 제안을 탑승시키고 eventlistener를 얻으려고 노력할 것입니다. – Kpizzle

관련 문제