2012-03-06 42 views
5

Chúng tôi là những người dùng lớn của NuGet, chúng tôi có 25-30 gói mà chúng tôi cung cấp trên mạng chia sẻ.Thử nghiệm gói NuGet

Chúng tôi muốn thử nghiệm các gói mới trước khi chúng được xây dựng và phát hành trong các ứng dụng tiêu thụ. Lý tưởng nhất, điều này có thể được thực hiện bằng cách sử dụng something similar to Maven's snapshot và có một gói phát triển cụ thể (ví dụ: snapshot functionality).

Có ai khác nghĩ ra một cách lý tưởng, không hợp lý, cách làm việc đó không?

Phương pháp ưa thích của chúng tôi là tạo các gói phần mềm và sau đó ghi đè lên các cụm trong thư mục/gói, nghĩa là thay thế các tham chiếu dự án thực tế, nhưng dường như không rõ ràng.

Cập nhật:

Chúng tôi sử dụng một CI build máy chủ mà tạo ra được xây dựng trên mỗi cam kết và có một cụ bằng tay kích hoạt NuGet xây dựng các công trình mà tắt đặc biệt đánh dấu phiên bản của codebase. Chúng tôi không muốn tạo một NuGet xây dựng mọi cam kết, nhưng chúng tôi muốn có thể thử nghiệm một ứng cử viên có khả năng trong tự nhiên trước khi chúng tôi kích hoạt xây dựng gói NuGet thủ công.

Trả lời

2

Nếu bạn đang sử dụng các gói NuGet để phân phối các thư viện của mình, bạn không nên giới hạn chỉ kiểm tra các thư viện. Bạn cũng nên tự kiểm tra các gói (nếu các tệp nhị phân của bạn là OK nhưng được cài đặt không chính xác, người dùng vẫn gặp sự cố). Toàn bộ vấn đề là cải thiện trải nghiệm này.

Một cách có thể là có một CI hoặc kho lưu trữ QA bổ sung. Một trong những bạn hiện đang có thực sự là "sản xuất" kho chứa các bản phát hành tiêu hao, được coi là sản phẩm chất lượng cao hoàn thành.

Tiếp tục, bạn có thể có luồng quảng cáo gói hợp lý (dựa trên Tích hợp liên tục hoặc thậm chí sử dụng phương pháp Phân phối liên tục), trong đó: - mỗi lần đăng ký tạo gói trên kho CI của bạn - người kiểm tra nhận Gói CI cho QA và nếu thấy OK quảng cáo cho nguồn cấp dữ liệu QA hoặc cho nguồn cấp dữ liệu Sản xuất (tùy theo điều bạn muốn, tùy thuộc vào chất lượng của thử nghiệm và mức độ tự động của nó)

Có nhiều cách khác nhau để triển khai kịch bản này, sử dụng chia sẻ mạng đơn giản, triển khai NuGet.Server hoặc Thư viện nội bộ hoặc chỉ cần sử dụng http://myget.org để thử với chi phí tối thiểu và nỗ lực không.

Hy vọng điều đó sẽ hữu ích!

Chúc mừng, Xavier

+0

Chúng tôi chỉ sử dụng nội bộ nhóm phát triển và, ít nhất là cho yêu cầu này, chúng tôi chỉ sau khi xác thực rằng hội đồng là lành mạnh. Quy trình làm việc điển hình là nhà phát triển ứng dụng tìm thấy lỗi trong gói. Nhà phát triển gói (có thể, nhưng không nhất thiết, cùng một người) sẽ tạo các thử nghiệm trong gói và tạo một ứng cử viên xây dựng - nhưng chúng tôi muốn có một cách duyên dáng để kiểm tra gói trong ứng dụng mà nó đã bị hỏng. Ảnh chụp hoặc bản dựng phát triển Maven lý tưởng cho trường hợp này. NuGet không có bất cứ thứ gì gọn gàng có sẵn ngay ra khỏi hộp. – Unsliced

+0

Kiểm tra liên kết này [http://www.arunrana.net/2012/01/testing-nuget-package-before-publishing.html]. Câu trả lời ngắn gọn là bạn có thể thêm một gói nguồn khác (đường dẫn tệp) trỏ đến các gói "chưa được xuất bản" của bạn, sau đó sử dụng Package Manager Console để cài đặt từ vị trí đó. –

0

tôi đã kết thúc viết một đơn vị/tích hợp thử nghiệm khuôn khổ để giải quyết một vấn đề simular. Về cơ bản, tôi cần phải kiểm tra nội dung của gói, phiên bản và thông tin, điều gì sẽ xảy ra khi tôi cài đặt và gỡ cài đặt gói, phiên bản nào trong assembly, các bit được lắp ráp như (x86 hoặc x64) và như vậy - và tôi cần tất cả để chạy mà không cần Visual Studio cài đặt và trên máy xây dựng của tôi (không đầu) như một cổng chất lượng.

Đứng trên vai những người khổng lồ như: Pester, PEToolsSharpDevelop's package management module tôi đặt lại với nhau - nuget-test

  1. Clone dự án vào thư mục gói của bạn (nơi bạn.tệp nuspec và tệp gói). Nếu vì lý do nào đó bạn muốn giữ dự án thử nghiệm nuget dưới dạng repo "git" thì đơn giản xóa "remove-item nuget-test/.git -Recurse -Force" khỏi lệnh bên dưới.

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

  2. Run Setup.ps1 trong thư mục gốc của thư mục NuGet-thử nghiệm bên trong dụ x86 của PowerShell.

    PS> .\setup.ps1

  3. Viết kiểm tra và đặt chúng trong thư mục NuGet-test/kiểm tra bằng cách sử dụng cú pháp Pester.

  4. Chạy thử nghiệm.

    PS> Invoke-Pester

trang dự án: nuget-test
On github: https://github.com/nickfloyd/nuget-test

Tôi hy vọng điều này sẽ giúp bạn có được gần gũi hơn với những gì bạn đang cố gắng để có được thực hiện.