2009-07-28 17 views
7

Tôi có một ứng dụng mà tôi đóng gói thành dạng "nhị phân" bằng PerlApp để phân phối. Kể từ khi khách hàng của tôi muốn cài đặt đơn giản cho hệ thống Win32 của họ, điều này hoạt động rất độc đáo.Có cách nào để đóng gói các bài kiểm tra đơn vị của tôi với PAR hoặc PerlApp không?

Bây giờ khách hàng đã quyết định rằng họ cần chạy tất cả các kiểm tra đơn vị, như trong cài đặt chuẩn. Tuy nhiên, họ vẫn sẽ không cài đặt một Perl bình thường.

Vì vậy, tôi thấy mình cần một cách để đóng gói các bài kiểm tra đơn vị của mình để hoạt động trên các hệ thống của khách hàng của tôi.

Suy nghĩ đầu tiên của tôi là tôi có thể đóng gói prove trong một tệp và đóng gói riêng từng thử nghiệm của mình. Sau đó gửi một tệp zip với cấu trúc thích hợp.

Một chút nghiên cứu cho thấy rằng Kiểm tra :: Khai thác :: Dây đeo gọi perl từ dòng lệnh.

Có công cụ hiện có nào giúp với quá trình này không?

Có lẽ tôi có thể sử dụng công cụ của PAR::Packer để xử lý yêu cầu các tập lệnh thử nghiệm của tôi.

Tôi quan tâm đến suy nghĩ về cách áp dụng hoặc PAR hoặc PerlApp, cũng như bất kỳ suy nghĩ nào về cách tiếp cận ghi đè Kiểm tra :: Khai thác và bạn bè.

Cảm ơn.

Cập nhật: Tôi không có tâm điểm của mình về PAR hoặc PerlApp. Đó chỉ là những công cụ tôi quen thuộc. Nếu bạn có ý tưởng hoặc giải pháp yêu cầu người đóng gói khác (chẳng hạn như Cava Packager), tôi rất muốn nghe về nó.

Cập nhật 2: tsee đã chỉ ra một tính năng mới tuyệt vời trong cải cách hành chính giúp tôi gần gũi. Có bất kỳ chuyên gia TAP nào ở đó có thể cung cấp một số ý tưởng hoặc gợi ý về nơi cần tìm trong bản phân phối Kiểm tra :: Khai thác mới không?

Trả lời

4

Tôi có thể không phá vỡ tin tức lớn nếu tôi nói với bạn rằng PAR (và có lẽ cũng perlapp) không có nghĩa là đóng gói toàn bộ bộ thử và rất nhiều sản phẩm phụ xây dựng mô-đun CPAN. Chúng được thiết kế để đóng gói các ứng dụng độc lập hoặc các thư viện mô-đun giống như JAR nhị phân.

Điều này đang được nói, bạn có thể thêm tệp tùy ý vào lưu trữ PAR (cả thư viện .par và .exe độc ​​lập) bằng cách sử dụng chuyển đổi -a của trang. Trong trường hợp thực thi độc lập, nội dung sẽ được trích xuất thành $ ENV {PAR_TEMP}. "/ Inc" tại thời gian chạy.

Điều đó khiến bạn gặp phải sự cố khi sử dụng lại tệp thi hành được đóng gói theo PAR để chạy khai thác thử nghiệm (và cho phép chạy tệp thi hành của bạn dưới dạng "perl"). Bây giờ, tôi không có giải pháp sẵn sàng và đã làm cho điều đó, nhưng gần đây tôi đã làm việc để làm cho các tệp thi hành được đóng gói theo PAR có thể sử dụng lại được như là các trình thông dịch perl đa mục đích. Hai gotchas trước khi tôi giải thích cách bạn có thể sử dụng điều đó:

  • Đơn đăng ký của bạn sẽ không được gọi là "perl" và tự thêm vào $ PATH của bạn.
  • Việc "sử dụng lại" của ứng dụng như một mục đích chung perl yêu cầu các tùy chọn đặc biệt và không hiện hỗ trợ các tùy chọn perl thông thường (những người trong perlrun). Nó chỉ đơn giản có thể chạy một kịch bản perl bên ngoài của sự lựa chọn của bạn.

Thật không may, vấn đề thứ hai là những gì có thể giết phương pháp này cho bạn. Hỗ trợ cho các tùy chọn dòng lệnh perl là một cái gì đó tôi đã suy nghĩ về, nhưng sẽ không thực hiện bất kỳ thời gian sớm.

Dưới đây là công thức làm thế nào bạn có được cải cách hành chính với "exe tái sử dụng" hỗ trợ:

  • Cài đặt phiên bản mới nhất của cải cách hành chính từ CPAN.
  • Cài đặt phiên bản mới nhất, nhà phát triển của PAR :: Trình đóng gói từ CPAN (0,992_02 hoặc 03).
  • Thêm tùy chọn "--reusable" vào dòng lệnh pp của bạn.
  • Chạy thực thi của bạn với các tùy chọn sau đây để chạy một kịch bản bên ngoài "foo.pl":

    ./myapp --par-options --reuse foo.pl FOO-PL-OPTIONS-ĐÂY

Thật không may, làm thế nào bạn sẽ dạy thử nghiệm :: Khai thác đó "./myapp --par-options --reuse" là một thông dịch viên perl là ngoài tôi.

+1

Tôi không nghĩ mình sẽ tìm được giải pháp 100%. Nhu cầu của tôi hơi lạ một chút. Nhưng công việc gần đây của bạn về cải cách hành chính giống như một bước tiến lớn trong đúng hướng. Tôi có một số ý tưởng thô về subclassing hoặc monkey-patching Test :: Harness, và có thể chứng minh. Với cải cách hành chính có thể tái sử dụng, tôi có thể mang tất cả lại với nhau. Cảm ơn. – daotoad

1

Cava Packager cho phép bạn đóng gói các tập lệnh thử nghiệm với tệp thi hành được đóng gói của bạn. Điều này chủ yếu để cho phép bạn chạy thử nghiệm đối với mã được đóng gói trước khi phân phối. Tuy nhiên, tùy chọn cũng có để phân phối các bài kiểm tra và khả năng kiểm tra cho người dùng cuối của bạn.

Lưu ý: Như được chỉ rõ bằng tên của tôi, tôi liên kết với Cava Packager.