@hadley nghĩa là gì trong gói nhị phân, tests/
không có mặt; nó chỉ nằm trong gói nguồn. Quy ước là bất cứ điều gì trong inst/
được sao chép vào thư mục cấp cao nhất của gói khi cài đặt, vì vậy inst/tests/
sẽ có sẵn dưới dạng /tests
trong cấu trúc thư mục gói nhị phân và được cài đặt.
Xem ví dụ permute của mình làm ví dụ. Tôi đã sử dụng gói dịch vụ testthat của hadley như một trải nghiệm học tập và cho các bài kiểm tra gói của tôi. Gói hàng nằm trên CRAN. Lấy tarball nguồn và thông báo rằng nó có cả hai tests/
và inst/tests/
, sau đó lấy nhị phân Windows và thông báo rằng chỉ có tests/
và đó là một bản sao của một từ inst/tests
trong các nguồn.
Nghiêm ngặt, chỉ tests/
được điều hành bởi R CMD check
v.v. vì vậy trong quá trình phát triển và kiểm tra gói sản xuất bạn cần mã số tests/
để kiểm tra gói. Tất nhiên bạn có thể có mã trong tests/
chạy các tập lệnh R trong /inst/tests/
thực sự thực hiện các kiểm tra, và điều này có tác dụng phụ cũng làm cho mã kiểm tra có sẵn cho người dùng gói.
Cách tôi thấy mọi thứ là bạn cần ít nhất tests/
, cho dù bạn cần inst/tests
sẽ phụ thuộc vào cách bạn muốn phát triển gói của mình và mã/gói kiểm tra đơn vị bạn đang sử dụng. Các inst/tests/
là một cái gì đó @hadley ủng hộ nhưng nó là xa là một tiêu chuẩn trên nhiều CRAN.
Nguồn
2012-02-27 23:11:33
Ồ, tôi hiểu rồi - Tôi nghĩ các bài kiểm tra/tôi đã thấy thực sự là các bài kiểm tra/từ nhà phát triển. Tôi đã không nhận ra nó là inst/tests /. Cảm ơn. –
Vâng, chúng ta hãy lấy đoạn thứ tư với một số muối. Điều này thực sự trở lại những gì Martin Maechler đã nấu chín, ban đầu cho một số gói Rmetrics. 'inst/tests' đã được sử dụng * năm * trước khi testthat được viết. –
@DirkEddelbuettel Cảm ơn bài học lịch sử; không biết điều này là do Martin. Vẫn đứng đó; điều này là xa tiêu chuẩn, ngay cả khi cả Martin * và * Hadley sử dụng nó ;-) –