Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jasmine src_文件在Rails中的通配符用法_Javascript_Ruby On Rails_Jasmine - Fatal编程技术网

Javascript Jasmine src_文件在Rails中的通配符用法

Javascript Jasmine src_文件在Rails中的通配符用法,javascript,ruby-on-rails,jasmine,Javascript,Ruby On Rails,Jasmine,当涉及到为Jasmine文件要求单独的Javascript时,我遇到了一个问题。我的application.js.coffee文件没有包含require_树,因为我正在每个视图的标签中加载特定于页面的javascript 我补充说: src_files: - assets/application.js - assets/*.js 无法加载位于assets/中的任何JS文件。但是,文件显然在那里,因为如果我使用 src_files: - assets/application.js

当涉及到为Jasmine文件要求单独的Javascript时,我遇到了一个问题。我的application.js.coffee文件没有包含require_树,因为我正在每个视图的标签中加载特定于页面的javascript

我补充说:

src_files:
  - assets/application.js
  - assets/*.js
无法加载位于assets/中的任何JS文件。但是,文件显然在那里,因为如果我使用

src_files:
  - assets/application.js
  - assets/feedback.js

feedback.js文件已正确加载,测试通过。为什么通配符不加载目录中的文件?此外,assets/*/.js也不适用于文件夹。

当jasmine gem在磁盘上查找您的文件时,它使用
Dir.glob
展开路径中的通配符(
*
)。如果
Dir.glob
找不到任何文件,并且指定的路径中没有任何通配符,那么jasmine将只添加该文件。这基本上假设您使用的是链轮,这将起作用

这意味着,如果所有顶级include都是coffescript文件,那么它们实际上不会匹配
*.js

您可以:

  • 添加一个额外的顶级
    .js
    文件,其中包含所有javascript,并在
    jasmine.yml
  • 将每个顶级文件分别添加到
    jasmine.yml
  • 添加一个
    *.js.coffee
    规则给你
    jasmine.yml
    ,然后添加一个否定匹配器来删除你不想要的东西
最后一个选项看起来像这样(告诉jasmine从要包含的文件列表中删除与此glob匹配的文件):

src_files:
  - assets/application.js
  - assets/*.js.coffee
  - !assets/subfolder/*.js.coffee