【问题标题】:Unable to run tests from sublime text 3无法从 sublime text 3 运行测试
【发布时间】:2023-04-09 22:20:01
【问题描述】:

我正在尝试从 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。但是测试仍然没有运行。

【问题讨论】:

    标签: ruby macos minitest ubuntu-12.10 sublimetext3


    【解决方案1】:

    通过查看this issue,它可能与您的捆绑程序生成的 binstub 相关。

    查看RVM docs,您可能想尝试运行:

    gem regenerate_binstubs
    

    或:

    bundle install --binstubs
    

    如果之后仍有问题,我会尝试完全移除 binstub。 可以在here找到操作说明。

    【讨论】:

    • 我遇到了类似的问题(前四行字符相同),通过运行bundle install --no-binstubs 解决了。
    【解决方案2】:

    我尝试了一切,从更改运行 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 需要该特定格式的文件名,如果可能,请更改/编辑它。

    【讨论】:

      猜你喜欢
      • 2016-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-11
      • 2015-05-17
      • 2017-05-22
      相关资源
      最近更新 更多