2012-10-13 21 views
5

Tôi đang làm điều gì đó sai. Tôi đang cố gắng viết và thử nghiệm ruby ​​đơn giản trong một tệp. Tôi muốn bảo vệ để xem các tập tin và các tập tin thử nghiệm và chạy minitest bất cứ lúc nào hoặc thay đổi tập tin.Sử dụng bảo vệ-minitest trên một tệp Ruby

Vì vậy, hai tập tin: game.rb và game_test.rb

game.rb

class Game 
end 

game_test.rb

require 'rubygems' 
require 'minitest/autorun' 
require './game' 

class GameTest < MiniTest::Unit::TestCase 
    def test_truth 
    assert true 
    end 
end 

Tôi cũng có một Guardfile trông như thế này:

notification :terminal_notifier 

guard 'minitest', test_folders: '.' do 
    watch('game.rb') 
    watch('game_test.rb') 
end 

Bây giờ, tôi là có lẽ đã quên điều gì đó, nhưng tôi không thể cho cuộc sống của tôi tìm ra nó là gì.

Nếu tôi bắt đầu bảo vệ và nhấn Enter, "Chạy tất cả" xảy ra và các thử nghiệm chạy .. ít nhất là hầu hết thời gian. Tuy nhiên, tôi phải nhấn Enter để nó xảy ra.

Ngoài ra, nếu tôi thực hiện thay đổi đối với các tệp thì không có gì xảy ra. Tôi đã thử đặt gem 'rb-fsevent' trong một Gemfile và chạy với "bundle exec guard" nhưng điều đó dường như không giúp được gì.

Mọi trợ giúp sẽ được đánh giá cao. Tôi sẽ ăn hạt.

Cảm ơn, Jeremy

Trả lời

5

Your first "xem" định nghĩa sẽ chỉ đơn giản là vượt qua "game.rb", mà không phải là một tập tin thử nghiệm vì vậy nó sẽ không được chạy. "đồng hồ" thứ hai là chính xác, do đó khi bạn lưu "game_test.rb", các thử nghiệm sẽ chạy.

này phải là một Guardfile chính xác hơn:

notification :terminal_notifier 

guard 'minitest', test_folders: '.' do 
    watch('game.rb') { 'game_test.rb' } 
    watch('game_test.rb') 
end 
+2

Vì vậy, tôi cố gắng đó và không có may mắn. Điều duy nhất tôi có thể làm việc là xem ('game.rb') {'./game_test.rb'} với thư mục tương đối trong đó. Tôi thực sự không hiểu tại sao. Có suy nghĩ gì không? –

+1

Nếu có bất kỳ sự an ủi nào, tôi có cùng một vấn đề. Tôi đã phải làm điều tương tự cho cả hai tệp (tương đương với 'watch ('game.rb') {'./game_test.rb'}; xem ('game_test.rb') {'./game_test.rb')} '. –

+0

Thật kỳ lạ, đừng ngại [báo cáo bất kỳ vấn đề nào để bảo vệ-minitest] (https://github.com/guard/guard-minitest/issues/new) (cũng phải chắc chắn chạy Guard ở chế độ gỡ lỗi, chỉ cần bắt đầu nó với cờ '--debug'). Ngoài ra, tôi khuyên bạn nên lấy cảm hứng từ mẫu Guardfile của [guard-minitest] (https://github.com/guard/guard-minitest/blob/master/lib/guard/minitest/templates/Guardfile#L3-L5) . – rymai

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