如何自定义Jasmine的目录结构?

Cas*_*how 8 javascript unit-testing jasmine

当使用Jasmine Rubygem时,我发现我必须遵守生成的目录结构非常烦人,该结构javascriptsspec文件夹中有一个子文件夹.我觉得它没用,因为我完全用Javascript编写.

我发现我可以public通过更改生成来更改文件夹中的内容jasmine.yml,但是,这不是我想要的,因为我仍然需要保留javascripts文件夹.

有没有办法自定义这个文件夹结构?

Ada*_*ray 5

这是我用茉莉花宝石1.0.2.1做到这一点的方法:

1)自定义jasmine_config.rb文件以覆盖simple_config_file方法以指向正确的yml文件路径.该文件最初是在spec/javascripts/support/jasmine_config.rb中生成的.如github源代码(https://github.com/pivotal/jasmine-gem/blob/v1.0.2.1/lib/jasmine/config.rb)所示,该方法硬编码使用:

def simple_config_file
  File.join(project_root, 'spec/javascripts/support/jasmine.yml')
end
Run Code Online (Sandbox Code Playgroud)

我想将'spec'目录重命名为'test',因此我的jasmine_config.rb文件的顶部如下所示:

module Jasmine
  class Config
    def simple_config_file
      File.join(project_root, 'test/javascripts/support/jasmine.yml')
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

2)强制rake加载配置文件.我通过添加以下行来完成此操作:

require 'test/javascripts/support/jasmine_config.rb'
Run Code Online (Sandbox Code Playgroud)

在我的Rakefile中需要茉莉花之后立刻.

3)更新jasmine.yml(也在支持文件夹中)以指示您的javascript测试文件的位置.我的yml文件现在以此结束:

# EXAMPLE:
#
# spec_dir: spec/javascripts
#
spec_dir: test/javascripts
Run Code Online (Sandbox Code Playgroud)

当然,您需要将该路径"test"调整为您想要的.

我认为这种方法应该适用于最新版本的gem,但是如果它们改变了Config类的接口,这种方法将来会破坏.