使用browserify样式代码运行jasmine HTML报告器的最佳方法是什么?我也希望能够用phantomjs运行这个无头,因此需要HTML记者。
答案 0 :(得分:8)
我已经创建了一个详细的示例项目来解决茉莉花测试(以及其他问题) - 请参阅https://github.com/amitayd/grunt-browserify-jasmine-node-example。在my blog post
进行讨论这方面的方法是为主要源代码创建一个Browserify包(所有模块都公开),另一个用于依赖外部主要源代码的测试。然后可以在PhantomJS或真实浏览器中运行测试。
答案 1 :(得分:5)
我认为还没有jasmine-browserify
软件包,并且它与Browserify / NPM的处理方式并不匹配(避免全局导出)。
目前,我只在/node_modules/jasmine-reporters/ext/jasmine.js
的顶部添加了jasmine-html.js
和<head>
,并要求我在顶级spec_entry.js
中使用我的所有规范作为我之后在<head>
中添加的Browserify包的入口点。 (请注意,如果入口点不是顶级,那么由于Browserify中持久且粗糙的错误,您将会遇到错误的时间。)
只要您不认为存在全局jasmine-node
或document
,就可以很好地与window
一起使用。但是,您必须记住在spec_entry.js
中注册您的规范,除非您想破解Browserify以使其抓取.spec.js
文件的目录。
我对更优雅的解决方案非常感兴趣,它可以透明地与jasmine-node和browserify一起使用。
答案 2 :(得分:4)
如果您使用grunt-watchify,则无需创建spec_entry.js。只需在您的规范中使用require,然后使用grunt-watchify捆绑您的规范:
watchify: {
test: {
src: './spec/**/*Spec.js',
dest: 'spec/spec-bundle.js'
}
},
jasmine: {
test: {
options: {
specs: 'spec/spec-bundle.js'
}
}
},
然后用
运行测试grunt.registerTask('test', ['watchify:test','jasmine:test']);
答案 3 :(得分:1)
由于以上所有答案都没有过时(当然这并不意味着他们不再工作等等)。我想指出https://github.com/nikku/karma-browserify这是业力跑步者的预处理器。它将测试文件与所有必需的依赖项相结合。这样创建的browserify包被传递给karma,它基于配置运行它。请注意,您可以选择任何现代测试框架(jasmin,mocha ...)和浏览器(幻像,镀铬......)可能这正是您所需要的:)
答案 4 :(得分:0)
您可能还想了解一下Karma。设置非常简单,它会监视更改并重新运行测试。查看这个使用Karma测试browserify / react项目的示例项目。您只需添加一些依赖项并创建一个karma.conf.js文件。
https://github.com/TYRONEMICHAEL/react-component-boilerplate