rails teaspoon在引擎中测试不加载*_spec.js

nge*_*elx 6 javascript rubygems rspec ruby-on-rails teaspoon

我正在研究一种引擎(宝石),它有一些js代码需要测试,但似乎我无法让它工作.我已经按照维基文章设置了一个基本的例子,但我只是得到了0 examples, 0 failures.

完成的步骤:

  • 在gemspec文件中添加了s.add_development_dependency'teaspoon-jasmine'
  • 虚拟是spec/dummy
  • 投机/ teaspoon_env.rb:

    unless defined?(Rails)
      ENV["RAILS_ROOT"] = File.expand_path("../dummy", __FILE__)
      require File.expand_path("#{ENV["RAILS_ROOT"]}/config/environment", __FILE__)
    end
    
    Teaspoon.configure do |config|
       ...
       config.root = MyEngineName::Engine.root
       ...
    end
    
    Run Code Online (Sandbox Code Playgroud)
  • Rake文件:

    desc "Run the javascript specs"
    task :teaspoon => "app:teaspoon"
    
    Run Code Online (Sandbox Code Playgroud)
  • spec/javascripts/spec_helper.js(默认生成时)
  • 规格/ Java脚本/ example_spec.js:

    describe("My great feature", function() {
      it("Bang", () => {
        expect(true).toBe(false);
      });
    });
    
    Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试运行测试引擎时,我得到:

    $> teaspoon 
    Starting the Teaspoon server...
    Thin web server (v1.7.0 codename Dunder Mifflin)
    Maximum connections set to 1024
    Listening on 127.0.0.1:57036, CTRL+C to stop
    Teaspoon running default suite at http://127.0.0.1:57036/teaspoon/default


    Finished in 0.01600 seconds
    0 examples, 0 failures
Run Code Online (Sandbox Code Playgroud)

我也尝试运行以下命令,结果相同:

  • $>捆绑exec teaspoon
  • $>耙茶匙
  • $> bundle exec teaspoon spec/javascripts/example_spec.js
  • 甚至$> bundle exec teaspoon spec/javascripts/non_existent_file_spec.js

我不太清楚什么不起作用.作为非标准的应用程序,我通过browserify-rails使用es6(工作正常),并进入engine.rb:

    config.browserify_rails.paths = [
        lambda { |p| p.start_with?(MyEngineName::Engine.root.join("app").to_s) }
    ]
Run Code Online (Sandbox Code Playgroud)

任何帮助或线索将非常感激.

更新:

我已经从strach创建了一个引擎,因此很容易检查并重现问题.

回购引擎示例

特别是,与茶匙设置相关的提交就是这个

chi*_*ron 1

这是由于测试中的箭头函数造成的。将其更改为 vanilla JS 以使其正常工作:

it("Bang", function() {
  expect(true).toBe(false);
});
Run Code Online (Sandbox Code Playgroud)

浏览器选项在 es6 上工作得很好。