我在testing node.js files找到了Jasmine 2.4的页面,甚至提到在spec / support / jasmine.json中设置spec 和source 文件文件。但是,在线示例和 jasmine examples
都没有显示如何告诉茉莉在哪里找到源文件。
所以我不断获得ReferenceErrors,因为它似乎没有在我的源文件中读取。应该指出的是,目前我只是用它来教一些学生测试,并使用他们的单文件玩具项目进行练习。 (就像CLI Hangman Game一样。)所以现在还没有module.exports继续进行,尽管他们的一些项目使用require()
来引入第三方模块。我一直在使用Karma,直到我意识到它只适用于浏览器JavaScript,require
仍然失败。
修改:我刚发现this post基本上都是一样的问题,但我不想使用grunt只是为了让Jasmine在源文件中读取。看起来像应该内置的东西,比如Karma如何询问源文件和规范文件的位置。
第二次编辑:我不应该把它放在这里,但是Emarco将我的问题标记为我在上面第一次编辑中链接的那个,即使我非常具体地解释了为什么其他帖子没有回答我的问题。
答案 0 :(得分:2)
FWIW我发现在helpers
列表中列出我的源文件有效..
{
"spec_dir": "spec",
"spec_files": [
"fooSpec.js",
"barSpec.js"
],
"helpers": [
"../src/foo.js",
"../src/bar.js"
]
}
答案 1 :(得分:0)
不幸的是,茉莉花开发人员似乎依赖grunt或其他工具来使用茉莉花。正如您已经提到的,使其无需咕噜声或业力的唯一方法是使用require.js。
将here中的require.js文件放入index.html。
只需要在corrosponding 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!";
};
这对我有用......我希望有所帮助,没有找到另一种解决方案。
答案 2 :(得分:0)
在jasmine v3.3.1中,我的以下代码也正在使用Protractor进行测试。 我们要做的就是定义数据源位置。
//My script is in src/com/sam/scripts so I go back to root
var jsondataobj = require('../../../../config/Jsoninput.json');//define the data source location
describe('spec with 2 specs it mean a spec so here are 2 specs', function() {
it('stackoverflow login check', function() {
browser.driver.ignoreSynchronization = true;
browser.waitForAngularEnabled(false);
browser.driver.get(jsondataobj.testsiteurl);
console.log("Test site URL is : "+jsondataobj.testsiteurl);
element(by.id(jsondataobj.locators.loginpage.username)).sendKeys(jsondataobj.credentials.username1);
});
})
我的数据源是config文件夹中的.json文件。确切的文件如下。
{
"testsiteurl":"https://stackoverflow.com/users/login?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2f",
"locators":{
"loginpage":{
"username":"email",
"password":"password"
}
},
"credentials":{
"username1":"stack@over.com",
"password1":"donjoeweclome"
}
}
答案 3 :(得分:-2)
在spec/support/jasmine.json
文件中,您需要拥有并拥有spec_dir
和spec_files
个属性。
{
"spec_dir": "spec",
"spec_files": [
"fooSpec.js",
"barSpec.js"
]
}
jasmine将使用spec_dir
为您的spec_files
项添加前缀并运行测试。对于fooSpec.js,当您在项目的BASE_DIR上运行jasmine
时,测试将针对BASE_DIR/spec/fooSpec.js
和BASE_DIR/spec/barSpec.js
运行