2008-09-08 21 views

Trả lời

23

Nó thực sự phụ thuộc vào những gì bạn đang cố gắng làm, nhưng đây là một số nền tảng cho phần lớn điều này.

Trước tiên, bạn sẽ thường viết các chương trình thử nghiệm của bạn với Test :: More hoặc Test :: Đơn giản là chương trình thử nghiệm cốt lõi:

use Test::More tests => 2; 

is 3, 3, 'basic equality should work'; 
ok !0, '... and zero should be false'; 

Bên trong, Test :: Builder được gọi là đầu ra những kết quả xét nghiệm như TAP (Test Anything Protocol). Kiểm tra :: Khai thác (một bao bọc mỏng xung quanh TAP :: Khai thác), đọc và diễn giải TAP, cho bạn biết nếu các bài kiểm tra của bạn vượt qua hoặc thất bại. Công cụ "chứng minh" được đề cập ở trên được đi kèm với Test :: Harness, vì vậy hãy nói rằng lưu ở trên trong thư mục t/(thư mục kiểm tra Perl chuẩn) là "các số.t", sau đó bạn có thể chạy nó bằng lệnh này:

prove --verbose t/numbers.t 

Hoặc để chạy tất cả các bài kiểm tra trong thư mục đó (một cách đệ quy, giả sử bạn muốn rơi vào thư mục con):

prove --verbose -r t/ 

(--verbose Dĩ nhiên, là không bắt buộc).

Như một mặt lưu ý, không sử dụng TestUnit. Nhiều người khuyên bạn nên nó, nhưng nó đã bị bỏ rơi trong một thời gian dài trước đây và không tích hợp với công cụ kiểm tra hiện đại.

0

tôi muốn đi cho Test :: hơn, hay nói chung, bất cứ điều gì mà kết quả đầu ra TAP

0

Tính đến bây giờ, chúng tôi sử dụng thử nghiệm :: hơn nhưng hiện tại vấn đề là chúng ta phải chạy tất cả các file kiểm tra bằng tay để thử nghiệm. Những gì tôi đang tìm kiếm là một khung công tác tự động hơn có thể thực hiện kiểm tra gia tăng/xây dựng các kiểm tra, v.v.

Trình bao bọc xung quanh Kiểm tra :: Thêm vào đó là lý tưởng nhưng bất cứ điều gì tốt hơn và nhiều chức năng hơn cũng sẽ ổn.

Tôi đang trải qua PerlUnit để xem liệu điều đó có hữu ích hay không.

+1

Xin đừng dùng PerlUnit. Nó đã bị bỏ rơi. Nếu bạn phải có khung kiểu xUnit, hãy xem Test::Class. Nó được tích cực duy trì và tích hợp với khung kiểm tra tiêu chuẩn của Perl. – Ovid

2

Nếu tôi hiểu bạn một cách chính xác bạn đang tìm kiếm TAP::Harness

2

Nếu bạn đang sử dụng ExtUtils::MakeMaker hay Module::Build, sau đó bạn có thể chạy tất cả các bài kiểm tra của bạn tự động bằng cách nhập lệnh "make test" hoặc "Xây dựng thử nghiệm", mà sẽ thực thi bất kỳ tệp * .t nào trong thư mục t/thư mục con của dự án của bạn.

Nếu bạn không sử dụng một trong hai cách này, bạn có thể sử dụng TAP::Harness để tự động thực thi nhiều tập lệnh thử nghiệm.

Để thực sự viết các thử nghiệm, hãy sử dụng Test::More hoặc bất kỳ mô-đun nào mà những người khác đã đề xuất tại đây.

0

Bạn có biết tiện ích 'chứng minh' (từ App :: Chứng minh) không? Bạn có thể yêu cầu nó chạy tất cả các bài kiểm tra đệ quy trong một thư mục nhất định, có hoặc không có độ dài, v.v.

1

Cá nhân, tôi thích bài kiểm tra :: Phần lớn bài kiểm tra cơ bản :: Thêm nhiều tính năng thú vị khác.

9

Check-out CPAN Testers, mà có rất nhiều công cụ để kiểm tra tự động. Hầu hết trong số đó phải ở trên CPAN để bạn có thể sửa đổi nó để đáp ứng nhu cầu của bạn. Nó cũng rất dễ dàng để viết thử nghiệm của riêng bạn bằng cách sử dụng TAP :: Khai thác.

Chính xác bạn cần làm gì và bạn đang cố gắng điều chỉnh nó như thế nào trong quy trình của mình?

2

chúng ta phải chạy tất cả các tập tin thử nghiệm bằng tay để thử nghiệm

Bạn chắc chắn muốn được sử dụng chứng minh (chạy thử nghiệm của bạn) và/hoặc Module :: Xây dựng (xây dựng mã của bạn và sau đó chạy thử nghiệm của bạn bằng cách sử dụng cùng mã khai thác thử nghiệm chứng minh sử dụng nội bộ.)

0

Để kiểm tra tự động trong perl, hãy xem Test::Harness, chứa công cụ prove.

Công cụ prove có thể được thực hiện với lệnh sau:

prove -r -Ilib t 

này sẽ recursivly kiểm tra tất cả các file * .t trong '/ t' thư mục, trong khi thêm lib đến con đường bao gồm.

+0

-l là viết tắt của -Ilib – Schwern

1

Khung kiểm tra bộ các lựa chọn là Test::Harness, mà sẽ chăm sóc của việc kiểm soát một hoạt động kiểm tra, thu thập kết quả vv

module khác nhau tồn tại để cung cấp một số loại xét nghiệm, phổ biến nhất trong số đó có thể được tìm thấy trong Test::SimpleTest::More (cả hai đều được bao gồm trong bản phân phối Thử nghiệm Đơn giản). Toàn bộ không gian tên Test trên CPAN được dành riêng cho các mô-đun thử nghiệm đơn vị chuyên biệt, phần lớn trong số đó được thiết kế để chạy dưới Kiểm tra :: Khai thác.

Theo quy ước, kiểm tra được lưu trữ trong thư mục t/của dự án và mỗi tệp thử nghiệm sử dụng đuôi tệp .t; kiểm tra thường được thực hiện qua

prove t/*.t 

Phân phối mô-đun thường bao gồm mục tiêu đặt tên là 'test' chạy bộ kiểm tra trước khi cài đặt. Theo mặc định, quá trình cài đặt CPAN yêu cầu các kiểm tra vượt qua sau khi xây dựng trước khi một mô-đun sẽ được cài đặt.

5

Bạn đã xem smolder chưa?

"Trình kiểm tra khói được sử dụng bởi các nhà phát triển và người thử nghiệm để tải lên (tự động hoặc thủ công) và xem các bài kiểm tra khói/hồi quy bằng cách sử dụng Giao thức kiểm tra mọi thứ. Chi tiết và xu hướng được vẽ đồ thị và thông báo được cung cấp qua email hoặc nguồn cấp dữ liệu Atom".

+0

Điều này rất hay, nhưng Smolder dường như không phân tích cú pháp TAP lưu trữ chính xác nữa. –

2

Bạn nói:

"Những gì tôi đang tìm kiếm là một chi tiết của khuôn khổ tự động có thể làm thử nghiệm gia tăng/xây dựng kiểm tra vv"

Vẫn không hoàn toàn chắc chắn những gì bạn đang sau .Như những người khác đã đề cập bạn muốn nhìn vào những thứ được dựa trên Test :: Harness/TAP. Phần lớn cộng đồng thử nghiệm Perl sử dụng khung công tác đó - vì vậy bạn sẽ nhận được nhiều hỗ trợ hơn (và mã hiện có hữu ích) bằng cách sử dụng nó.

Bạn có thể nói thêm một chút về ý nghĩa của "kiểm tra gia tăng/kiểm tra xây dựng" không?

Tôi đoán rằng bạn muốn chia các bài kiểm tra của mình thành các nhóm để bạn chỉ chạy một số thử nghiệm nhất định trong một số trường hợp nhất định?

Có một số cách để thực hiện việc này. Cách đơn giản nhất là nên chỉ sử dụng hệ thống tập tin - thư mục chia tay thử nghiệm của bạn, do đó bạn có những thứ như:

 

core/ 
database.t 
infrastructure.t 
style/ 
    percritic.t 
ui/ 
    something.t 
    something-else.t 

Và vân vân ... thì bạn có thể sử dụng dòng lệnh "chứng minh" công cụ để chạy chúng tất cả hoặc chỉ một số thư mục nhất định, v.v.

chứng minh có nhiều tùy chọn hữu ích cho phép bạn chọn thử nghiệm nào đang chạy và theo thứ tự nào (ví dụ như thứ tự gần như thất bại gần đây nhất). Điều này - tất cả bởi chính nó - có thể sẽ giúp bạn hướng tới những gì bạn cần.

(BTW điều quan trọng là phải tải phiên bản thử nghiệm gần đây :: Đơn giản/chứng minh/v.v. từ CPAN. Các phiên bản gần đây có nhiều chức năng hơn).

Nếu bạn là người có tư duy OO, hoặc có kinh nghiệm trước đó về khung xUnit, bạn có thể xem Test :: Class là một khung công tác Perl xUnit được xây dựng trên TAP/Test: : Khai thác lớp. Tôi nghĩ rằng nó tốt hơn khá nhiều so với PerlUnit - nhưng tôi sẽ nói rằng kể từ khi tôi đã viết nó :-)

Check-out ngon cho một số thông tin thêm về thử nghiệm :: Class http://delicious.com/tag/Test::Class

Nếu đây không phải là những gì bạn sau khi - bạn có thể đi vào chi tiết hơn một chút về chức năng nào bạn muốn không?

Chúc mừng,

Adrian

Các vấn đề liên quan