Băng cassette của VCR đóng vai trò là vật cố định cho các thử nghiệm của bạn. Bạn cần phải cam kết chúng vào kho lưu trữ nếu không các xét nghiệm của bạn sẽ không chạy đúng trong máy của người khác, hoặc chỉ sửa chữa ở đó với sự phụ thuộc nặng bên ngoài mà là vi phạm nguyên tắc kiểm thử.
Tất nhiên bạn cần ẩn thông tin đăng nhập của bạn từ công khai hoặc nhóm trong khi vẫn giữ các thông tin trên.
Giải pháp là filter_senstive_data
cài đặt và đá quý Figaro.
Lúc đầu, This answer from Myron in a similar question có thể giải quyết vấn đề của bạn phần lớn.
Để thiết lập VCR
VCR.configure do |c|
c.filter_sensitive_data("<SOMESITE_PASSWORD>") do
ENV['SOMESITE_PASSWORD']
end
end
Khối trên mã sao chép từ câu trả lời Myron vì tôi muốn bổ sung thêm sau
Để biết thêm về cài đặt này, kiểm tra doc https://relishapp.com/vcr/vcr/v/2-5-0/docs/configuration/filter-sensitive-data
Hiện tại, đối với ENV['SOMESITE_PASSWORD']
, đó có thể là thông tin xác thực thực bằng cách sử dụng Figaro gem.
Cài đặt Figaro sẽ tạo một tệp config/application.yml
và thêm nó vào .gitignore
. Vì vậy, bạn chỉ có thể nhập tên người dùng và mật khẩu thông tin xác thực của mình ở đó mà không có rủi ro bị rò rỉ cho công chúng.
Nguồn
2013-07-30 16:14:12
FWIW, tác giả của VCR cam kết băng cassette: https://twitter.com/myronmarston/status/199887944570503168. Có một bài đăng của anh ta, nơi anh ta đi vào chi tiết hơn, nhưng tôi không thể tìm thấy nó. – Dennis