2015-10-04 15 views
8

Tôi đang sử dụng testthat để kiểm tra mã trong gói của mình. Một số thử nghiệm của tôi là dành cho các chức năng cơ bản, chẳng hạn như các nhà xây dựng và getters. Những người khác là dành cho chức năng phức tạp xây dựng trên đầu trang của các chức năng cơ bản. Nếu các kiểm tra cơ bản thất bại, thì dự kiến ​​các phép thử phức tạp sẽ thất bại, do đó không có thử nghiệm điểm nào thêm nữa.Có thể xác định thứ tự kiểm tra trong testthat không?

Có thể:

  1. Đảm bảo rằng các xét nghiệm cơ bản luôn được thực hiện đầu tiên
  2. Thực hiện một thử nghiệm thất bại ngăn chặn quá trình thử nghiệm

Trả lời

5

Để trả lời câu hỏi của bạn, tôi không' t nghĩ rằng nó có thể được xác định khác hơn là bằng cách đặt tên chữ và số thích hợp của các tệp test-*.R của bạn.

Từ testthat nguồn, đây là chức năng mà test_package cuộc gọi, qua test_dir, để có được các bài kiểm tra:

find_test_scripts <- function(path, filter = NULL, invert = FALSE, ...) { 
    files <- dir(path, "^test.*\\.[rR]$", full.names = TRUE) 

Điều gì là sai với chỉ cho phép các công việc phức tạp không đầu tiên, dù sao?

+0

* "Có chuyện gì vậy ..." *? Suy nghĩ đầu tiên của tôi là "thời gian để tính toán", tìm kiếm một sự chờ đợi lâu dài. (Một trong những dự án của tôi không thể tránh khỏi đòi hỏi 15-20 phút để chạy qua tất cả các bài kiểm tra. Ngoài ra tôi có sự phụ thuộc giữa các bài kiểm tra: một bài kiểm tra thiết lập môi trường, các bài kiểm tra khác sử dụng lại các thành phần. tất cả.) – r2evans

+1

Điểm công bằng. Đó là khó khăn nhưng có thể phân chia các bài kiểm tra, chỉ một số trong đó chạy trên thử nghiệm CRAN, nếu đó là quan trọng với bạn. Việc chạy một bộ kiểm thử cụ thể chỉ cần một đối số dòng lệnh, nhưng không tích hợp với Rstudio, và chia sẻ nội dung thử nghiệm giữa hai nhóm, hoặc sử dụng testthat, có lẽ tất cả chỉ đòi hỏi rất nhiều công sức bảo trì và phá vỡ. Vì vậy, tôi đồng ý với bạn! –

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