2011-01-25 3 views
1

TD.NET으로 mspec 사양 테스트를 실행하려고 할 때이 예외가 발생했습니다.MSExpec은 ReSharper에서 잘 실행되지만 TD.NET은 예외를 throw합니다.

------ Test started: Assembly: DesignRightWeb.Specs.dll ------ 

Error: Runner failure: System.Runtime.Serialization.SerializationException: Type is not   resolved for member 'Machine.Specifications.Runner.RunOptions,Machine.Specifications,  Version=0.3.0.0, Culture=neutral, PublicKeyToken=null'. 
    at System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes) 
    at  Machine.Specifications.Runner.Impl.AppDomainRunner.CreateRunnerAndUnloadAppDomain(String  runMethod, AppDomain appDomain, Assembly assembly, Object[] args) in d:\BuildAgent- 01\work\340c36596c29db8\Source\Machine.Specifications\Runner\Impl\AppDomainRunner.cs:line  81 
Test 'T:DesignRightWeb.Specs.given_a_string_calculator' failed: Type is not resolved  for member 'Machine.Specifications.Runner.RunOptions,Machine.Specifications,  Version=0.3.0.0, Culture=neutral, PublicKeyToken=null'. 
    System.Runtime.Serialization.SerializationException: Type is not resolved for member 'Machine.Specifications.Runner.RunOptions,Machine.Specifications, Version=0.3.0.0, Culture=neutral, PublicKeyToken=null'. 
    at System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityAttributes) 
    at Machine.Specifications.Runner.Impl.AppDomainRunner.CreateRunnerAndUnloadAppDomain(String runMethod, AppDomain appDomain, Assembly assembly, Object[] args) 
    at Machine.Specifications.Runner.Impl.AppDomainRunner.RunMember(Assembly assembly, MemberInfo member) 
    at Machine.Specifications.TDNetRunner.SpecificationRunner.RunMember(ITestListener testListener, Assembly assembly, MemberInfo member) 
    at TestDriven.TestRunner.AdaptorTestRunner.Run(ITestListener testListener, ITraceListener traceListener, String assemblyPath, String testPath) 
    at TestDriven.TestRunner.ThreadTestRunner.Runner.Run() 

0 passed, 1 failed, 0 skipped, took 1.12 seconds (MSpec). 

MSpec을 Github에서 곧바로 설치하려고 시도했으며 NuGet을 사용하여 설치했습니다. 그 후 -이 동일한 예외를받는 동안 - TD.NET을 제거하고 TD.NET을 다시 설치했습니다. 이 예외가 계속 발생합니다.

아이디어가 있으십니까? 생각? 솔루션?

답변

2

TestDriven.NET에 MSpec 테스트 러너를 등록해야합니까? 당신을 도와이 게시물을 체크 아웃 : 당신이 전에 TD.Net 러너를 등록하면

http://eduncan911.com/blog/registering-mspec-runners-for-testdriven-net-on-windows-x64.aspx

+1

TD.Net> = 2.24를 사용하는 경우 주자를 등록 할 필요가 없습니다. 프로젝트에서 참조하는'Machine.Specifications.dll' 옆에'Machine.Specifications.dll.tdnet'과'Machine.Specifications.TDNetRunner.dll'을 놓습니다. –

1

, 그것은 등록을 취소하십시오 (일부 레지스트리가 필요할 수 있습니다 해킹 - 실행 취소하는 방법을 InstallTDNetRunner.bat 참조).

TD.Net> = 2.24를 실행하십시오. NuGet 패키지를 프로젝트에 추가하고 TD.Net을 통해 테스트를 실행하십시오. NuGet 패키지에는 ReSharper 러너가 설치되어 있습니다.

오류가 계속 발생하면 이전 버전의 MSpec이 어딘가에서 참조되었을 가능성이 큽니다. 이전 버전은 0.3.0.0이며 NuGet은 현재 0.4.7.0입니다.

(질문을 올렸을 때 NuGet 패키지를 제공 한 사람이 해당 패키지에 TD.Net 러너를 포함하지 않았습니다. 설명 된 문제는 해결해야합니다. 모든 주자가 포함 된 새로운 NuGet 패키지)