2010-05-27 2 views
12

여러 어셈블리에서 몇 개의 개별 단위 테스트 픽스쳐를 참조하는 테스트 스위트를 NUnit에 만들었습니다.NUnit not running 스위트 테스트들

나는 거의 NUnit's docs에서 예제 코드를 사용했습니다 :

namespace NUnit.Tests 
{ 
    using System; 
    using NUnit.Framework; 
    using System.Collections; 

    public class AllTests 
    { 
     [Suite] 
     public static IEnumerable Suite 
     { 
      get 
      { 
       ArrayList suite = new ArrayList(); 
       suite.Add(new VisionMap.DotNet.Tests.ManagedInteropTest.DotNetUtilsTest()); 
       return suite; 
      } 
     } 
    } 
} 

내 목표는 그래서 일괄 적으로 그들 모두를 실행할 수 있습니다 위의 목록에 몇 가지 테스트를 추가하는 것입니다.

하지만 NUnit과의 GUI에 DLL을로드하려고 할 때이 얻을 : 내가 잘못 뭐하는 거지 alt text

를?

나는 GUI가 스위트를 실행하지 않는다고 말하고 있지만 콘솔을 사용해 본 것으로 알고 있습니다. 누군가 제 스위트가 좋은 점과 제 목표를 달성하기 위해 어떻게 사용할 수 있는지 말해주십시오.

저는 2.5.0.9122의 nunit을 사용하고 있습니다.

편집

글쎄, 아무 대답 차기 없습니다. 결국 대안 솔루션을 찾았습니다. 카테고리. 나는 적절한 범주를 부여함으로써 테스트 픽스처를 그룹화 한 다음 다른 서브 세트를 무시하면서 배치에서 서브 세트를 실행할 수 있습니다.

여전히이 스위트 기능이 완전히 손상된 것 같습니다.

+0

저는 Suites가 좋은 점에 대해 누군가에게 설명하기 위해 또는 명령 줄에서 모든 것을 실행하지 않고 몇 가지 어셈블리에서 테스트 배치를 만드는 방법에 대해 현상금을 추가했습니다. –

+0

현상금이 도움이되지 못했다는 부끄러운 생각 ... 게시 된 유일한 답은 질문에 대한 답변에 근접하지 않습니다. –

+0

나는 항상 이런 종류의 카테고리를 사용한다. 그것은 더 널리 지원되는 것 같습니다. –

답변

3

스위트 정말이 모든 일에서 더 아무것도 필요하지 않습니다. 어떤 테스트가 실행되고 실행되지 않는지 지정하기 위해 이들을 사용하려는 경우에는 Category 속성을 사용하면 훨씬 더 효율적입니다. 이것은 당신이 끝내고, 당신의 문제에 대한 최선의 해결책처럼 들립니다.

그러나 다른 사람들의 참조 용으로는 수 있습니다.은 여전히 ​​Nunit의 Suites를 사용합니다. 콘솔에서 실행해야하며/fixture 옵션 만 사용해야합니다. 당신은 어떤 증거 나에 스위트를 실행하는 방법을 볼 수 없습니다

nunit-console /fixture:AllTests.Suite AllTests.dll 

예를 들어, (어셈블리 AllTests.dll로 컴파일 된 클래스를 가정)을 실행할 것, 당신이 위에서 지정한 스위트를 실행합니다 GUI - 이것은 문서에 언급되어 있습니다. 그러나 위의 명령을 사용하여 GUI에 내장 된 콘솔에서 실행할 수 있습니다.


필자가 테스트 메소드에 인수를 전달해야하는 이상한 사용 사례가 있기 때문에 필자는 일부 테스트에서 스위트를 사용합니다. 나는 아래와 같은 모음집을 만들어 이것을한다. 그래서 그 (것)들을위한 몇몇 용도가있다, 당신의 케이스에서 다만 아무 필요도.

+0

덧붙여 말하자면, 누군가 내가 인수 한 것보다 런타임에 테스트의 동작을 제어하는 ​​더 나은 방법을 알고 있다면, 제발 논평 해주세요. 나는 Nunit 문서와 메일 링리스트를 검색하는 데 시간을 보냈다. – imoatama

3

"TestSuite"대신 "IEnumerable"을 반환하는 이유가 있습니까?

[Suite] 
public static TestSuite Suite 

업데이트

읽기 NUnit과 사이트의 페이지 하단에있는 작은 인쇄, 그것은 구이 러너에에서 표시되지 않습니다 스위트 룸의 형식 시험과 같은, 그래서 나는 그 문제 같아요 :)

스위트는 현재 Gui에 표시되지 않으며 두 주자가 만났을 때 자동으로 실행됩니다. Suite 메커니즘의 역사적 목적은 각 실행의 최상위 레벨에서 테스트를 집계하는 방법을 제공하는 것이 었습니다. 따라서 콘솔이나 GUI 명령 행에서/fixture 옵션과 함께 사용될 때만 지원됩니다.

업데이트 2

나는 당신이되고 시험 재의 세트를 구성하는 방법을 찾기 위해 노력하는 경우는 "스위트"기능을 달성하기 위해 노력하고 있지만, 무엇 확실하지 않다 함께, 나는 이것을 수행하기 위해 "NUnit Test Projects"을 사용했다 (이것은 단지 테스트 구성 dll을 나열하는 xml 구성 파일 일 뿐이다). 이 테스트 어셈블리 참조의 고정 세트가 콘솔 주자에 의해 GUI로로드 또는 실행 한 후 구성 할 수 있습니다 :

http://www.nunit.org/index.php?p=multiAssembly&r=2.5.5

+0

Docs에서해야 할 말은 다음과 같습니다. http://www.nunit.org/index.php?p=suite&r=2.4.7 테스트 자체에서 NUnit의 버전을 디커플링하는 것과 관련이 있다고 생각합니다. –

+0

a. 나는/fixture 옵션을 사용하지 않으며, 더 중요한 것은 b. 어떻게 스위트 룸을 운영할까요? 나는 GUI와 콘솔을 모두 시도했다. 작동하지 않는다. –

+0

고마워, 나는 그 대신에 그것을 시도 할 것이다. 그러나 귀하의 질문에 대답하기 위해, 그게 내가 성취하려고 노력하는 것입니다. 그리고 스위트가 무엇인지에 대한 인상을 받았습니다. 그렇지 않다면 무엇을 위해서입니까? –