Chúng tôi đã viết các trình phân tích cú pháp cho các định dạng dữ liệu khoa học khác nhau trong Perl. Gần đây tôi đã thêm một bộ thử nghiệm với một tệp parser_*.t
cho mọi định dạng và biểu mẫu con.Làm thế nào để lên kế hoạch kiểm tra bổ sung được chạy bởi phụ bên ngoài?
Tất nhiên, API của các trình phân tích cú pháp hoàn toàn giống với dữ liệu được đọc từ các tệp mẫu được sử dụng để kiểm tra phân tích cú pháp khác. Để đơn giản hóa các tệp thử nghiệm, tôi đã viết một phụ được truyền đối tượng phân tích cú pháp và một cấu trúc băm đại diện cho dữ liệu dự kiến. Dường như
my $parser = new MyApp::Parser($file);
test_nested_objects = ($parser, {
property1 => "value",
property2 => 123,
subobject_accessor => {
property3 => "foobar",
}
}
Tiểu test_nested_objects
đi qua băm và chạy thử nghiệm cho tất cả các thuộc tính được định nghĩa trong băm, ví dụ nếu subobject_accessor
có thể được gọi, trả về một đối tượng và đối tượng đó có thể được gọi là property3
.
Tôi đã kiểm tra xem có bao nhiêu thử nghiệm được chạy bởi toàn bộ tệp *.t
và thêm tests => 123
vào tất cả các tệp *.t
. Bây giờ, tôi đã thêm một số kiểm tra vào chức năng chung và tất cả các kế hoạch đều sai.
Làm cách nào để kế hoạch của tôi nhận biết được các bài kiểm tra? Tôi muốn đạt được như sau:
- số xét nghiệm đưa ra trước khi chạy chúng cho quan điểm của progess
- tổng số tăng tự động → không thay đổi số bằng tay khi chỉnh sửa phụ
- kiểm tra cá nhân trong phụ có thể nhìn thấy khi chạy chứng minh (ẩn kiểm tra ở phụ và trả về 0 hoặc 1 không được chấp nhận vì tôi thực sự cần biết dữ liệu được phân tích là gì)
Tôi hy vọng bạn có thể hiểu. Xin lỗi vì câu chuyện dài nhưng tôi nghĩ mọi người có lẽ sẽ không hiểu mà không có kiến thức nền tảng.