문제

단위 테스트 클래스가 기본 프로젝트 (TestAccount)의 일부일 때 모든 것이 잘 작동합니다.

단위 테스트에 대해 읽은 모든 기사는 별도의 프로젝트에 테스트를하는 것이 좋습니다.

  • 솔루션에 다른 프로젝트 (TestAccount.unittests)를 추가했습니다
  • 단위 테스트 클래스 (AccountTests.vb)를 testAccount.unittests로 옮겼습니다.
  • TestAccount.unittests에서 TestAccount에 참조를 추가했습니다 (copy local = true)

솔루션은 경고없이 컴파일됩니다. 그러나 Nunit은 기본 프로젝트에 액세스 할 수 없으며 각 테스트에 대해 다음과 같은 오류를 제공합니다.

System.io.filenotFoundException : 파일 또는 어셈블리 'TestAccount, version = 1.0.0.0, culture = neutral, publicKeyToken = null'또는 그 종속성 중 하나를로드 할 수 없습니다. 시스템이 지정된 파일을 찾을 수 없습니다.

내가 뭘 잘못하고 있죠?

(GAC에 추가 할 때까지 Nunit.framework.dll과 비슷한 문제가있었습니다)

솔루션 탐색기 스크린 샷 http://img440.imageshack.us/img440/4862/nunitsolutionExploreree3.jpg

Visual Studio 2005
.NET 2.0
Nunit 2.4.8 (.NET 2.0 버전)

편집] Visual Studio에서 Nunit을 실행할 때만이 문제가 있습니다 (외부 명령). Nunit 콘솔을 독립적으로로드하면 잘 작동합니다.

편집] Omar : 예, 다른 프로젝트에 대한 언급이 있습니다. 여기에 있습니다 내 솔루션 탐색기의 스크린 샷

VS의 외부 도구를 통해서는 Nunit 콘솔을 별도로 실행해야 할 수도 있습니다.

도움이 되었습니까?

해결책

나는 a를 찾았다 버그 보고서 또한 Visual Studio는 TargetPath 및 TargetDir 매크로를 잘못 확장한다고 말합니다. 그들은 bin 가 아닌 obj 디렉토리로 확장됩니다.

업데이트] 문제/솔루션은 실제로 비주얼 스튜디오 지원 문서의 섹션. '대상'매크로는 obj 를 가리키기 때문에 상자 밖으로 사용할 수 없습니다. 인수 필드에서 다음 표현을 사용하게되었습니다.

$(ProjectDir)bin/Debug/$(TargetName)$(TargetExt)

다른 팁

이것은 어리석게 들릴지 모르지만 나는 당신의 테스트 프로젝트를 다른 프로젝트에 대한 참조로 주었습니까?

이러한 종류의 문제에 공통적 인 다른 문제는 다른 프로젝트/네임 스페이스에서 액세스 할 수없는 내부 클래스를 사용하는 것입니다.

또한 어셈블리 출력 경로가 Nunit 구성에 설정된 내용에 해당하는지 확인하십시오. 설정이 같은 설정이 있지만 'Copy Local = True'를 설정할 필요가 없습니다.

응용 프로그램 자체 또는 응용 프로그램의 종속성 중 하나를 찾지 못하는 문제가 있습니까? Filemon 또는 Fusion Log Viewer를 사용하여 정확히 실패한 것을 확인할 수 있습니다. 문제가 앱 자체를 찾는 것이 아니라 다른 종속성을 찾을 수 있습니다. 종속성이 로컬로 설정되어 있는지 확인하십시오.

VisualStudio 내에서 Nunit Gui를 정확히 어떻게 시작하고 있습니까? 프로젝트 속성에서 "외부 프로그램 시작"을 설정하는 경우 작업 디렉토리를 지정할 수있는 옵션이 제공됩니다. 이를 테스트 DLL의 빌드 위치로 변경해야 할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top