2009-08-13 4 views
8

NUnit에서 특정 테스트 만 실행하도록 사용자 정의 필터를 정의 할 수 있습니까? 나는 Nunit 테스트 중 많은 부분에 사용자 정의 속성 "BugId"가 표시되어 있습니다. 필터를 작성하여 숫자를 전달하고 해당 속성 및 숫자로만 테스트를 실행할 수 있습니까? 그렇다면 모형 또는 실제 코드를 보여주십시오.NUnit의 맞춤 필터가 가능합니까?

답변

3

NUnit 2.4.6부터 NUnit 속성은 봉인되지 않으며 서브 클래스는 기본 클래스로 인식됩니다. 따라서 :

NUNIT 콘솔 /는 NUnit과 코드를 찾고 후

5

필터에서 사용자 지정 특성을 사용해야합니까, 아니면 Category NUnit을 사용할 수 있습니까?

nunit-console /include=BugId-12234 ... 

: 다음

[Test] 
[Category("BugId-12234")] 
public void Test() 
{ 
    .... 
} 

...와 같은 뭔가가 /include=STR 플래그를 사용? 카테고리를 서브 클래 싱하여 사용자 정의 속성을 만들 것을 권하고 싶지만 속성에 전환 가능한 매개 변수를 추가 할 수는 없다고 생각합니다. ...

+0

"버그 # 1 테스트"내 생각이이 =입니다 포함 :

public class BugId : TestAttribute { public BugId(int bugNumber) : base("Test for Bug #" + bugNumber) { } } [BugId(1)] public void Test() {} 

은이 같은 명령 줄에서 호출 할 수 있습니다 NUnit을 수정하지 않고 할 수있는 최선의 방법. 귀하의 답변에 감사드립니다. –

0

나는 이것이 우아한 해결책이라고 생각했지만 내가 예상 한대로 작동하지 않습니다. 나는 IgnoreAttribute 클래스에서 파생되기를 희망했다. 나는 이것이 효과가있을 것이라고 생각했다 :

[Test, BugId("411")] 
public void TestMethod() 
{ 
    // your test 
} 

public class BugIdAttribute : IgnoreAttribute 
{ 
    private string id; 

    public BugIdAttribute(string id) : base("Ignored because it is bug #" + id) 
    { 
     this.id = id; 
    } 
} 

그러나 이것보다 더 많은 것이있는 것 같다. 실제로 답변이 아닌 답변을 게시하는 것에 대해 유감스럽게 생각합니다. 그러나 제 자신보다 nunit의 내부에 대해 더 많이 알고있는 누군가를위한 좋은 발판이라고 생각합니다.

+0

시험을 무시하고 싶지 않습니다. 버그가 수정되었고 해당 버그로 모든 관련 테스트를 실행하고 있음을 알 수 있기를 원합니다. –

관련 문제