我想使用Phantomjs和Jasmine进行单元测试javascript。 Phantomjs的网站建议我使用单独的东西来处理这个问题,特别是PhantomJasmine。我下载了PhantomJasmine并运行了示例。一切都很顺利。然后我将行var system = require('system');
添加到example_spec.js的顶部。当我尝试运行示例时,Phantomjs现在抛出错误我得到“ReferenceError:找不到变量:require”。所以,我想要做一些事情,比如启动浏览器,但看起来我无法结合jasmine和phantomjs语法。我只能使用Phantomjs运行纯茉莉。我怎样才能在同一个文件中使用它们?像:
console.log('Loading a web page');
var page = new WebPage();
var url = "http://www.phantomjs.org/";
page.open(url, function (status) {
//Page is loaded!
describe("A suite", function() {
it("contains spec with an expectation", function() {
expect(true).toBe(true);
});
});
phantom.exit();
});
答案 0 :(得分:4)
你不应该如何使用它。控制phantomjs的代码不应该与茉莉花规格相混淆,反之亦然。
您应该将您的规范分成.js文件,并使用HTML规范运行器创建标准的jasmine设置,该规范运行器加载spec .js文件并在phantomjs中打开该HTML文件。
另一个解决方案是使用含有phantomjs和jasmine的grunt来自动运行茉莉花规格。
https://github.com/cowboy/grunt
https://github.com/creynders/grunt-jasmine-task