Helpex - Trao đổi & giúp đỡ Đăng nhập
7

Tôi đang tạo công thức Homebrew cho thư viện C bao gồm bộ thử nghiệm của riêng nó. Là một phần của testkhối công thức, tôi muốn chạy các bài kiểm tra đi kèm với các tệp đã tải xuống. Các bài kiểm tra chạy dưới dạng maketarget ( make test). Tuy nhiên, testcác khối Homebrew chạy trong thư mục tạm thời của riêng chúng và các tệp đã tải xuống không nằm trong đường dẫn. Đó là, cách sau không hoạt động vì nó không thể tìm thấy tệp:

test do
  system "make", "test"
end

Làm cách nào để truy cập vào vị trí mà các tệp đã được tải xuống và giải nén ban đầu? Tôi không thể tìm thấy bất kỳ thông tin nào về điều đó trong tài liệu. Hoặc có giải pháp nào tốt hơn cho các bài kiểm tra Homebrew trong trường hợp này không?

7 hữu ích 2 bình luận 1.1k xem chia sẻ
1

Các test dokhối có nghĩa là để kiểm tra nếu một công thức đã được cài đặt một cách chính xác, không phù hợp với thử nghiệm chạy. Nếu quá trình kiểm tra không mất quá nhiều thời gian, bạn có thể chạy chúng như một phần của quá trình cài đặt:

def install
  # ...
  system "make", "test"
  # ...
end

Để trả lời câu hỏi của bạn, không có cách nào đáng tin cậy để lấy thư mục giải nén ban đầu vì nó bị phá hủy sau khi cài đặt và người dùng có thể đã xóa tarball được lưu trong bộ nhớ cache (ví dụ brew cleanup:) nên bạn phải tải xuống lại.

Một giải pháp là sao chép các tệp kiểm tra cần thiết ở đâu đó trong installbước sau đó sử dụng chúng trực tiếp hoặc sao chép chúng trong thư mục hiện tại khi kiểm tra, ví dụ:

def install
  # ...
  libexec.install "tests"
end

test do
  cp_r (libexec/"tests"), "."
  cd "tests" do
    # I’m assuming the Makefile's paths can be given
    # as variables here.
    system "make", "test", "LIB=#{lib}", "INCLUDE=#{include}"
  end
end
1 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ ruby homebrew , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading