如何使用Jasmine 2在jasmine.json中设置源文件

我发现Jasmine 2.4的页面testingnode.js文件 ,它甚至提到在spec / support / jasmine.json文件中设置spec 和源文件。 但是在线的例子 jasmine examples没有显示如何告诉茉莉花在哪里find源文件。

所以我不断得到ReferenceErrors,因为它似乎没有阅读我的源文件。 应该指出的是,现在我只是用它来教一些学生关于testing,并使用他们的单一文件玩具项目进行实践。 (就像一个CLI Hang子手游戏那样。)所以现在没有module.exports正在进行,虽然他们的一些项目使用require()来引入第三方模块。 我一直在使用Karma,直到我意识到这只是为了浏览器的JavaScript,并require保持失败。

编辑:我刚刚发现这个post基本上是一样的东西,但我不想用咕噜只是让茉莉花读取源文件。 看起来像应该内置的东西,就像Karma要求你的源文件和spec文件在哪里一样。

第二编辑:我不应该把这个放在这里,但是Emarco把我的问题标记为我在上面的第一个编辑中链接的一个副本, 尽pipe我非常具体地解释了为什么另一个post不能回答我的问题。

FWIW我发现列出我的源文件在helpers列表中的作品..

 { "spec_dir": "spec", "spec_files": [ "fooSpec.js", "barSpec.js" ], "helpers": [ "../src/foo.js", "../src/bar.js" ] } 

不幸的是,茉莉花开发者似乎依靠咕噜声或其他工具来使用茉莉花。 正如你已经提到的,让它工作没有咕噜声或业力的唯一方法是使用require.js。

把你的require.js文件放在你的index.html中。

只需要在相应的spec.js文件中包含源文件,如下所示:

 //Be careful to choose the right path from the sight of your spec.js var helloworld = require('../src/helloworld'); //the actual filename without '.js' 

然后在“helloworld.js”内导出你的脚本,如下所示:

 exports.helloWorld = function(){ return "Hello world!"; }; 

这对我工作…我希望有所帮助,没有find另一种解决scheme。

在你的spec/support/jasmine.json文件中,你需要有一个spec_dirspec_files属性。

 { "spec_dir": "spec", "spec_files": [ "fooSpec.js", "barSpec.js" ] } 

茉莉花将使用spec_dir作为您的spec_files项目的前缀并运行testing。 对于fooSpec.js,当你在BASE_DIR项目上运行jasmine时,testing将运行BASE_DIR/spec/fooSpec.jsBASE_DIR/spec/barSpec.js