그래서 어떤 테스트 메트릭 (NUnit)을 실행하려고하면 코드에서 일부 메트릭에 대해 NDepend API를 사용하여 프로젝트를 설정하려고합니다. , TypeInitializationExceptions 던져지고 있어요.NDepend TypeInitializationExceptions NUnit을 사용하여 테스트 할 때
이
내가지고있어 오류를 재현하는 몇 가지 코드입니다. 다음과 같이 클래스를 만듭니다.false
에 로컬 복사본을 설정, 클래스 라이브러리 프로젝트를 만들고$NDependInstallPath$\lib\NDependAPI
에서 NDepend의 API DLL을 참조 : 여기public class NDependProjectLoader { public void LoadAnNDependProject() { var provider = new NDependServicesProvider(); } }
Test 클래스가 될 솔루션에서 두 번째 클래스 라이브러리 프로젝트를 만듭니다. 참조 NUnit과 프로젝트 당신은이 NDependAPI
[TestFixture] public class NDependProjectLoader_Tests { [Test] public void I_can_load_an_depend_project() { new NDependProjectLoader().LoadAnNDependProject(); } }
빌드를 참조하고, (내가 ReSharper에서의 테스트 러너와 NUnit과 GUI를 시도했습니다) 선택의 테스트 러너를 사용하여 테스트를 실행 만들었습니다.
줄에 TypeInitializationException이 표시됩니다. var provider = new NDependServicesProvider();
"{"Could not load file or assembly 'NDepend.Platform.DotNet' or one of its dependencies. The system cannot find the file specified.":"NDepend.Platform.DotNet"}".
가 NDepend.PowerTools 샘플 프로젝트에서 AssemblyResolverHelper을 추가 및 얻기에 설명 된대로 전화 : 그 TypeInitializationException 내부 찾고
는루트 예외의 메시지가 있음을 보여줍니다 시작 가이드는 동작을 변경하지 않습니다.
I/가정/문제가 NDepend API의이 문장에 관련되어 시작 가이드 http://www.ndepend.com/api/NDepend.API_gettingstarted.html
에서 "프로그램 실행 어셈블리는 $ NDependInstallPath $로 생성해야 \ "
코드가 테스트 러너에서 시작되는 경우 실행 파일은 ndepend 설치 경로에 있지 않습니다. 그 .EXE $ NDependInstallPath $ \ lib 디렉토리의 \에 생성되는 콘솔 응용 프로그램에서 NDependProjectLoader.LoadAnNDependProject()를 호출
(.exe 인이 아닌 $ NDependInstallPath $의 \ lib 디렉토리의 \ 하위 폴더에 생성해야 할 것 같다 있습니다 \ 시작 안내서에 명시된대로) 예외를 생성하지 않습니다.
그렇다면 콘솔 응용 프로그램 이외의 항목에서 NDepend API로 어떻게 작동합니까? 예를 들어, 여기 테스트 주자에게서 그렇게하고 싶습니다. 또 다른 확실한 후보는 IIS 응용 프로그램입니다. 나는 명백한 것을 놓치고 있는가?
감사합니다. – thejackamo