无法从崇高文本3运行测试

时间:2013-08-19 06:30:13

标签: ruby macos minitest ubuntu-12.10 sublimetext3

我正在尝试从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。但测试仍未进行。

2 个答案:

答案 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需要特定格式的文件名,如果可能的话,更改/编辑它。