2012-11-29 36 views
0

我在RubyMine中有一些rspec測試,當我從RubyMine界面運行它們時,它們完美無缺。 但是,當我嘗試從終端運行相同的測試時,它們失敗。 我用紅寶石Gmail的寶石使用這種結構來發送郵件trougth的Gmail:運行失敗的Rspec從Gmail發送消息,在RubyMine中運行正常

@gmail.deliver do 
     to current_unread_mail.reply_to 
     subject "Re: " + current_unread_mail.title 
     body reply_body 
end 

它成功地發送郵件,如果我從RubyMine的運行,但沒有發送郵件(但不加任何類型的異常),當我像這樣運行我的rspec

rspec test_spec.rb 

所以我認爲這是RubyMine在運行時添加一些額外rspec參數的原因。

在RubyMine的Rspec的輸出

第一行是這樣的:

/home/user/.rvm/rubies/ruby-1.9.2-p318/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /home/user/.rvm/gems/[email protected]/bin/rspec /home/user/path_to_spec/test_spec.rb --require teamcity/spec/runner/formatter/teamcity/formatter --format Spec::Runner::Formatter::TeamcityFormatter 

,但如果我從終端運行此代碼我得到錯誤

bash: syntax error near unexpected token `$0=ARGV.shift' 

我能做些什麼?

+0

如何從終端運行規格?如果您有相應的'rake'任務可用,您是否嘗試過'rspec spec'或'rake spec'? –

+0

我不使用耙子。我運行rspec就像這樣'rspec test_spec.rb' – ShockwaveNN

+0

您能提供發生此錯誤的隔離示例嗎? –

回答

0

發現問題。 我用了Ruby-Gmail寶石,但是當我切換爲Gmail寶石(的Ruby-Gmail叉)和改變語法

email = @gmail.compose do 
to (current_unread_mail.reply_to.mailbox + '@' + current_unread_mail.reply_to.host).to_s 
subject "Re: " + current_unread_mail.title 
body reply_body 
end 
email.deliver! 

它工作正常的我。

0

您不應該在RubyMine上運行相同的命令行來運行您的規格。 所有這一切的RubyMine確實是有它自己的格式,因此它可以讓你在GUI的結果, 因此,如果你得到了這個工作存在只是使用更值rspec spec/...

Rspec的應該只用RSpec的命令中使用,您的測試將正確運行。

+0

Yeh,我認爲RubyMine的東西只是格式化程序,但是我仍然無法從rspec spec.rb命令正確地運行rspec,可能在gem bundle中有一些問題 – ShockwaveNN

+1

你在運行'rspec spec'時添加輸出?捆綁包問題很常見,請確保您的捆綁包使用'bundle check'並且可能使用'bundle exec rspec spec'運行rspec。 – stuartc

相關問題