似乎有许多帖子在处理Jasmin1.3和Requirejs,但我在2.0上遇到了麻烦。我使用Jasmin2.0进行测试,对AMD的遵从性使用requirejs,在测试中使用testr来模拟我的一些模块。
但是,当我打开页面时,它是空白的,控制台中没有任何内容。
如果这样做更有帮助的话,您可以在https://github.com/nopwd/client上看到完整的项目。
我设置了一个test.html页面:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NoPwd Testing Rig</title>
<link type="text/css" rel="stylesheet" href="lib/jasmine/lib/jasmine-core/jasmine.css" />
</head>
<body>
<script language="javascript" type="text/javascript" src="lib/requirejs/require.js"></script>
<script language="javascript" type="text/javascript" src="lib/testr.js/testr.js"></script>
<script language="javascript" type="text/javascript">
testr.config({
root: './',
baseUrl: './',
ignore: ['lodash']
});
testr.run('test.js', function() {});
</script>
</body>
</html>我还有一个test.js文件,它是入口点:
require.config({
paths: {
// ...
},
shim: {
'jasmine/jasmine': {
exports: 'window.jasmineRequire'
},
'jasmine/jasmine-html': {
deps: ['jasmine/jasmine'],
exports: 'window.jasmineRequire'
},
'jasmine/boot': {
deps: ['jasmine/jasmine', 'jasmine/jasmine-html'],
exports: 'window.jasmineRequire'
},
'jasmine-ajax': {
deps: ['jasmine/jasmine', 'jasmine/boot'],
exports: 'window.jasmineRequire'
}
}
});
require(
[
'jasmine/jasmine-html', 'jasmine/boot', 'jasmine-ajax',
'spec/nopwd-spec', 'spec/hash-spec', 'spec/transport-spec'
],
function() {
'use strict';
}
);我知道,对于以前的茉莉花版本,您必须调用jasmine.getEnv().execute(),但在2.0版本中,情况似乎并非如此。
发布于 2014-05-05 12:47:08
从本质上讲,问题在于茉莉花将自己附着在window.onload()上。现在,由于已经调用了require(),所以已经使用了window.onload(),因此处理程序永远不会被调用。我发现,答案是在入口点内手动调用window.onload() (对于我来说:test.js)。
有一个很好的例子,这里。
https://stackoverflow.com/questions/23461699
复制相似问题