我正在尝试从Sublime Text 3运行示例测试套件。
这是我使用bundle gem foo -t minitest
class TestFoo < MiniTest::Unit::TestCase
def test_that_it_has_a_version_number_test
refute_nil ::Foo::VERSION
end
def test_it_does_something_useful_test
assert true
end
end
我已经安装了RubyTest包,运行测试套件的绑定是Ctrl + Shift + T
我收到以下错误:
/home/thetuxracer/.rvm/rubies/ruby-2.0.0-p247/bin/ruby:1: Invalid char `\x7F' in expression
/home/thetuxracer/.rvm/rubies/ruby-2.0.0-p247/bin/ruby:1: Invalid char `\x02' in expression
/home/thetuxracer/.rvm/rubies/ruby-2.0.0-p247/bin/ruby:1: Invalid char `\x01' in expression
/home/thetuxracer/.rvm/rubies/ruby-2.0.0-p247/bin/ruby:1: Invalid char `\x01' in expression
/home/thetuxracer/.rvm/rubies/ruby-2.0.0-p247/bin/ruby:1:in `<main>': uninitialized constant ELF (NameError)
[Finished in 0.3s with exit code 1]
观察:
我使用rvm安装了ruby 2.0.0p247。如果我使用
从CLI运行测试 ruby -Itest foo_test.rb
测试运行良好。
我还确保RubyTest.sublime-settings中的密钥check_for_rvm
设置为true
这里似乎有什么问题?如果您可能需要帮助我,请告诉我。
编辑:我在带有ST3和ruby 2.0.0p247的Mac Os X 10.8.4上试过这个。在Rakefile中,我还在RakeTask中添加了这一行t.test_files = FileList['test/test_*.rb']
。
我查看了这个bug并从快捷方式启动了ST。但测试仍未进行。
答案 0 :(得分:1)
从查看this issue,它可能与您的捆绑生成的binstubs有关。
查看RVM docs,您可能想尝试运行:
gem regenerate_binstubs
或:
bundle install --binstubs
如果您之后仍有问题,我会尝试完全删除binstub。 可以在here找到执行此操作的说明。
答案 1 :(得分:0)
我尝试了所有方法,从更改minitest运行的现有项目中的配置更改到重新安装ST3包以重新安装ruby本身作为最后的手段。问题是,方式更小。
执行此命令bundle foo -t minitest
时,会创建以下文件:
bundle gem foo -t minitest
create foo/Gemfile
create foo/Rakefile
create foo/LICENSE.txt
create foo/README.md
create foo/.gitignore
create foo/foo.gemspec
create foo/lib/foo.rb
create foo/lib/foo/version.rb
create foo/test/minitest_helper.rb
create **foo/test/test_foo.rb**
create foo/.travis.yml
注意包含测试用例的文件的名称。我将其重命名为foo_test
,它只是起作用。
我现在需要弄清楚,为什么minitest需要特定格式的文件名,如果可能的话,更改/编辑它。