2011-10-28 2 views
1

OpenWrap 2.0의 베타 버전을 사용하고 있습니다. OpenWrap은 유닛 테스트를 실행하는 지원을 포함하고 있습니다. 제 질문은 정확히 어떻게 작동합니까?OpenWrap : 테스트 랩, 어떻게 작동합니까?

나는, 내장 랩 걸리는 테스트가 포함의 랩에서 검색하고이를 실행하려고 테스트 주자로 볼 하는가? 랩 안에 테스트를 포함시켜야합니까?

종속성 분석은 테스트 환경에서 어떻게 작동합니까? 테스트에 필요한 추가 종속성을 추가하는 테스트 범위를 지정할 수 있습니다. 그러한 종속성은 언제 사용됩니까? 테스트 프로젝트를 빌드하고 테스트 랩으로 테스트를 실행하는 데 사용된다고 가정합니다. 그러나 랩에 테스트를 포함 시키면 해당 테스트 범위 종속성도 랩의 종속성으로 간주되어서는 안되며 "테스트 랩"을 실행하려고 할 때 종속성으로 만 사용되어야합니까?

I는 시험의 상황에 대해 궁금 해서요 또 다른 것은, 컴파일 타임 및 런타임 종속성 사이의 차이입니다.

예를 들어 API를 지정하는 프로젝트 API가 있습니다. 그 프로젝트 옆에는 2 개의 다른 프로젝트 Impl1과 Impl2가 있는데, 각각 다른 API 구현을 지정합니다. 그 옆에는 API에 대한 테스트가 포함 된 테스트 프로젝트 API 테스트가 있습니다. 테스트는 의존성 주입을 사용하여 Impl1 또는 Impl2 중 하나를 주입하여 테스트를 실행합니다. 이 경우 API.Tests 프로젝트는 API에 대한 컴파일 시간 의존성 만 갖습니다 (컴파일 시간 의존성으로 사용할 수 있어야합니다). 그러나 테스트를 실행할 때 프로젝트는 Impl1 또는 Impl2에 런타임 종속성이 있습니다. 이것을 포장하는 방법에 대한 제안?

답변

0

test-wrap은 pacakge (in/tests)의 일부로 출하되는 테스트에 대해 테스트 러너를 실행할 수 있습니다.

구현은 지금 최신 더 이상, 패키지가 다소 복잡 이러한 테스트를 실행하게 testdriven.net 테스트 러너를 포함하지 않는 주로 때문이 아니다. 나는이 이유 때문에이 계획을 다시 평가하지 않았다.

OpenWrap 2는 범위를 사용하여 코드의 특정 하위 집합에만 적용되는 종속성을 정의합니다. 테스트의 경우 설명자에 올바른 dicrectory-structure 명령이 있으면 해당 프로젝트가 올바른 범위의 종속성을 가져옵니다. 우리는 어셈블리의 정보를 보존하지 않기 때문에 당신이 그 테스트를 실행할 때 우리는 우리가 아마 (적어도 테스트를 위해)해야 할 시험 범위에 대한 종속성을로드하지 않습니다 말했다

. 그러나 패키지의 모든 어셈블리는 현재 appdomain에 주입되므로 시나리오에서/tests에서 테스트를 받았다면 모든 어셈블리를 동일한 패키지에 패키지하면됩니다.

같은 메커니즘은

+0

당신은 필요한 모든 DLL을 포함하는 결과 랩에서/테스트 폴더를 의미합니다? – rvdginste

+0

테스트 어셈블리./bin에있는 어셈블리는 이미로드되어 있습니다. – SerialSeb

관련 문제