2009-10-13 42 views
5

Tôi bắt đầu thực hiện một số công việc cài đặt bằng WiX (yay, not Installshield) và tôi đã hy vọng sẽ thực hiện một số TDD của trình cài đặt. Có ai biết một cách dễ dàng để làm điều này?trình cài đặt thử nghiệm đơn vị

Trả lời

6

Nghe có vẻ giống với thử nghiệm tích hợp hơn TDD.

Theo như tôi có thể nói không có bộ thử nghiệm MSI nào phù hợp.

Tuy nhiên bạn có thể thử một cái gì đó như thế này (giả sử bạn có một máy chủ tích hợp contiunous):

  1. sau thành công xây dựng, lắp đặt MSI trên một máy ảo sạch - nếu cài đặt không làm điều gì đó (mail, vé, bất cứ điều gì)
  2. chạy bất cứ thử nghiệm hội nhập mà bạn có trong dự án

của bạn Sau đó bạn có thể chắc chắn rằng ứng dụng được cài đặt làm những gì nó cần.

+0

Ngoài việc trên, tôi rất muốn giới thiệu cài đặt trên đầu trang của bản cài đặt trước nhiều lần đặc biệt là khi bạn đang sử dụng một MSI (Windows Installer). Bằng cách này bạn sẽ có thể làm hỏng Windows Installer (registry, các file, vv) trước khi người dùng kinh nghiệm này, và phát triển một giải pháp. –

0

Có thể không phải là một ý tưởng tồi để chạy một vài thử nghiệm chuẩn trên một MSI được tạo. Các tập tin MSI hỗ trợ rất nhiều kịch bản triển khai khác nhau: admin install để trích xuất các tập tin, cài đặt được quảng cáo cho thư mục hoạt động, cài đặt im lặng, cài đặt bảo trì, gỡ cài đặt, v.v. Có thể thực sự là một ý tưởng để tạo một bộ thử nghiệm nhỏ cho điều này - có lẽ nó thậm chí được xem xét cho bộ công cụ WIX cho tất cả những gì tôi biết.

Tuy nhiên, tôi nghĩ bước đầu tiên, tốt nhất hướng tới việc cung cấp thiết lập chất lượng là chạy MSI thông qua bộ xác nhận MSI. Chúng được gọi là ICE (Internal Consistency Evaluators) và chúng được phân phối dưới dạng tệp * .cub với Windows Installer SDK. Chạy các tập lệnh này có xu hướng tiết lộ rất nhiều cấu trúc thiết kế xấu trong MSI. Công cụ WIX cho điều này được gọi là smoke.exe.

+0

Tôi nghĩ rằng không cần phải gọi khói một cách rõ ràng. Ánh sáng chạy thử nghiệm băng ở darice.cub và mergemod.cub (khi cần thiết) http://installing.blogspot.com/2006/04/msi-validation-in-wix.html –

2

Liệu nó làm sence, nếu bạn tạo một số tập tin kịch bản để kiểm tra rằng tập tin trên đúng chỗ. Tôi hy vọng làm cho nó như perl hoặc python script

test_installer_wix.pl

msiexec /x product.msi # remove 
msiexec /i product.msi /silent # install 

ASSERT_EXIST_FILE(PFILE, 'productname/application.exe') 
ASSERT_REGKEY_EXISTS() 

và vv