2010-05-13 4 views
18

파일을 받고 NUnit을 사용하여 실행하는 간단한 메서드를 작성하려고합니다. 내가 NUnit과의 소스를 사용하여 구축 관리 코드는 작동하지 않습니다C# 코드에서 NUnit 테스트를 실행하는 방법

if(openFileDialog1.ShowDialog() != DialogResult.OK) 
{ 
    return; 
} 

var builder = new TestSuiteBuilder(); 
var testPackage = new TestPackage(openFileDialog1.FileName); 
var directoryName = Path.GetDirectoryName(openFileDialog1.FileName); 
testPackage.BasePath = directoryName; 
var suite = builder.Build(testPackage); 

TestResult result = suite.Run(new NullListener(), TestFilter.Empty); 

문제는 내가 조립을 찾을 수 없다는 주장 builder.Build에 의해 던져진 예외를 점점 계속 것입니다.

무엇이 누락 되었습니까? Process.Start를 사용하지 않고 코드에서 테스트를 실행하는 다른 방법이 있습니까? 시작 부분에 다음 줄을 추가

+0

는 솔직히 말해서), 나는 시험이 방법에 대해 알고하지 않습니다. 블라인드를 추측 해보십시오. NUnit GUI를 통해이 테스트를 실행 해 보았습니까? 아니면 프로젝트에 참조 된 종속성이 모두 있는지 또는 예외가 발견되지 않는 어셈블리가있는 경우 확인 했습니까? NUnit을 사용하는 테스트 클래스는 [TestFixture()] 속성을 가져야하며, 테스트 메소드는 [Test()] 속성을 가지고 있어야하며, NUnit.Framework 가져 오기를 사용합니다. –

답변

27

는 NUnit과 프레임 워크를 설정하고 당신에게 도움이 될 수 있습니다 :

CoreExtensions.Host.InitializeService(); 

NUnit과이 될 것 프로그래밍 테스트를 실행하는 또 다른 "쉬운"방법 :

TestPackage testPackage = new TestPackage(@"C:\YourProject.Tests.dll"); 
RemoteTestRunner remoteTestRunner = new RemoteTestRunner(); 
remoteTestRunner.Load(testPackage); 
TestResult testResult = remoteTestRunner.Run(new NullListener()); 

에게 당신을 다음 어셈블리를 참조해야합니다.

  • nunit.core.dll
  • nunit.core.interfaces.dll

그리고 물론 6,의 nunit.framework.dll이 테스트 어셈블리 폴더에 있어야합니다

+1

이 모든 것들이 문서화되어 있습니까? 이 같은 것을 직접 구현하고 싶습니다만, 어떤 옵션이 열려 있는지 보려면 RTFM을 사용하십시오. – Andy

+2

[source code] (https://github.com/nunit/) 문서를 찾지 못했습니다. nunitv2)를 사용하여 자세한 정보를 얻으십시오. 그러나 내가 거기에있는 동안 - 나는 RemoteTestRunner와 SimpleTestRunner 사이에 미묘한 차이점을 발견했다. SimpleTestRunner와 SimpleTestRunner는 미묘한 차이점을 발견했다. Simple Runner는 사용자에게 Core Extension.Host.InitializeService를 호출한다. 귀하의 코드). – SethO

관련 문제