2012-03-06 4 views
5

우리는 NuGet을 가장 많이 사용하고 있으며 네트워크 공유에 25-30 개의 패키지를 제공합니다.NuGet 패키지 테스트

새로운 패키지를 제작하고 소비하기 전에 테스트 할 수 있기를 바랍니다. 이상적으로 이는 something similar to Maven's snapshot을 사용하고 특정 개발 패키지 (예 : snapshot functionality)를 사용하여 수행 할 수 있습니다.

누군가 다른 사람이 이상적으로 합리적으로 해커가 아닌 방법을 제안 했습니까?

우리가 선호하는 방법은 패키지 어셈블리를 생성 한 다음 패키지/디렉토리에있는 어셈블리를 수동으로 덮어 쓰는 것입니다. 즉, 실제 프로젝트 참조를 대체하는 것이지만 특별히 깨끗하게 보일 수는 없습니다.

업데이트 :

우리는 모든 커밋을 기반으로 생성하고 특정 수동 NuGet 특별히 코드베이스의 버전 태그 오프 작동하는 건설 트리거가있는 CI 빌드 서버를 사용합니다. 모든 커밋에서 NuGet 빌드를 생성하고 싶지는 않지만 수동 NuGet 패키지 빌드를 실행하기 전에 가능성있는 후보를 테스트 할 수 있기를 원합니다.

답변

2

NuGet 패키지를 사용하여 라이브러리를 배포하는 경우 라이브러리 테스트만으로 제한해서는 안됩니다. 패키지 자체를 테스트해야합니다 (바이너리가 정상이지만 잘못 설치 되었더라도 소비자는 여전히 문제가 있음). 요점은이 경험을 향상시키는 것입니다.

편도는 추가 CI 또는 QA 리포지토리을 가질 수 있습니다. 현재 가지고있는 것은 실제로 고품질의 제품으로 간주되는 소모품 릴리스를 포함하는 "생산"저장소입니다. 더 나아가

, 당신은 논리 패키지 프로모션 흐름을 가질 수있다, (지속적인 통합 또는 심지어 연속 배달 방법을 사용하여 기준) : - 각 체크인이 CI 저장소 에 패키지를 생산 - 테스터는 최대 선택 QA를위한 CI 패키지 및 OK가 발견되면 QA 피드 또는 생산 피드로 승격합니다 (테스트 품질 및 자동화 정도에 따라 원하는대로)

구현 방법에는 여러 가지가 있습니다 이 시나리오에서는 간단한 네트워크 공유, 내부 NuGet.Server 또는 갤러리 구현을 사용하거나 최소 비용과 노력을 들이지 않고도 http://myget.org을 사용하여 간단하게 시도 할 수 있습니다.

희망 하시겠습니까?

건배, 자비에르

+0

우리는 내부 용 전용 개발 팀이며 적어도이 요구 사항에 대해서는 어셈블리가 정상적인지를 검증 한 후에야합니다. 일반적인 워크 플로우는 앱 개발자가 패키지의 버그를 찾습니다. 패키지 개발자 (동일한 사람 일 수도 있지만 반드시 그런 사람은 아님)는 패키지에서 테스트를 생성하고 후보 빌드를 생성합니다.하지만 애플리케이션이 손상된 곳에서 패키지를 테스트 할 수있는 적절한 방법을 원합니다. Maven 스냅 샷 또는 개발 빌드는이 시나리오에 이상적입니다. NuGet에는 상자에서 꺼낸 바로 쓸만한 것이 없습니다. – Unsliced

+0

이 링크 [http://www.arunrana.net/2012/01/testing-nuget-package-before-publishing.html]를 확인하십시오. 짧은 대답은 "게시되지 않은"패키지를 가리키는 다른 패키지 소스 (파일 경로)를 추가 한 다음 패키지 관리자 콘솔을 사용하여 해당 위치에서 설치할 수 있다는 것입니다. –

0

은 내가 시뮬 문제를 해결하기 위해 단위/통합 테스트 프레임 워크를 작성 끝났다. 기본적으로 패키지의 내용, 버전 및 정보, 패키지를 설치하고 제거한 시점, lib의 어셈블리 버전, 어셈블리가 빌드 된 버전 (x86 또는 x64) 및 그래서 - 그리고 Visual Studio를 설치하지 않고 내 컴퓨터 (헤드리스)를 품질 게이트로 설치해야합니다.

같은 거인의 어깨에 서 : Pester, PEToolsSharpDevelop's package management module 내가 함께 넣어 - nuget-test

  1. 복제 프로젝트를 패키지 디렉토리에 (어디.nuspec 파일과 패키지 파일은). 어떤 이유로 든 너트 테스트 프로젝트를 "자식"저장소로 유지하려면 아래 명령에서 "remove-item nuget-test/.git -Recurse -Force"를 간단히 제거하십시오. PowerShell을의 86 인스턴스의 nuget-test 디렉토리의 루트에

    git clone https://github.com/nickfloyd/nuget-test.git; remove-item nuget-test/.git -Recurse -Force

  2. 실행 Setup.ps1.

    PS> .\setup.ps1

  3. 쓰기 검사 및 Pester 구문을 사용하여 nuget 테스트/test 디렉토리에 배치합니다.

  4. 테스트를 실행하십시오.

    PS> Invoke-Pester

프로젝트 페이지 :이 당신 완수하려는 것에 가까이 도움이되기를 바랍니다 https://github.com/nickfloyd/nuget-test

: GitHub의에 nuget-test
.

관련 문제