gpt4 book ai didi

testing - 从命令行运行时,运行 Mocha 测试(记者 html)的 Backbone Js 挂起

转载 作者:行者123 更新时间:2023-11-28 20:56:57 26 4
gpt4 key购买 nike

我们正在编写一个基于 Backbone.js 的应用程序,并尝试将我们的 Mocha 测试与我们的 Jenkins 结合使用持续集成服务器。

到目前为止,我可以使用类似 Testem 的方式运行测试或 mocha-phantomjs .测试运行但它们从不触发退出代码,因此脚本永远不会返回到命令行提示符。这正是脚本应该做的,所以我猜测我们设置 Mocha 测试库的方式有问题。我自己还没有发现问题。

有没有其他人遇到过这个问题并且至少找到了解决方法。

有什么想法吗?

我们的 test.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Dashboard Mocha Tests</title>
<link rel="stylesheet" href="css/mocha.css" />

<script src="js/vendor/require.js" type="text/javascript"></script>
<script>
requirejs.config({
baseUrl: 'js/',
paths: {
jquery : 'vendor/jquery.min',
underscore : 'vendor/underscore',
backbone : 'vendor/backbone',
handlebars : 'vendor/handlebars',
text : 'vendor/require-text',
json : 'vendor/require-json',
chaplin : 'vendor/chaplin',
mocha : 'vendor/mocha',
chai : 'vendor/chai',
sinon : 'vendor/sinon',
moment : 'vendor/moment'
},
shim: {
backbone: {
deps : ['underscore', 'jquery'],
exports : 'Backbone'
},
underscore: {
exports : '_'
}
}
});

if (location.hash === '#testem')
document.write('<script src="/testem.js"></'+'script>')
</script>
</head>
<body>
<div id="mocha"></div>
<script type="text/javascript">
require(['require', 'vendor/chai', 'vendor/mocha', 'vendor/sinon'], function(require, chai) {

assert = chai.assert;
expect = chai.expect;
should = chai.should();

mocha.setup({
ui: 'bdd',
});
var specs = [
'test/lib/utils',
'test/models/campaigns',
'test/models/campaign',
'test/views/input/input',
'test/views/input/text',
'test/views/input/textarea',
'test/views/input/checkbox',
'test/views/input/email',
'test/views/input/password',
'test/views/input/button',
'test/views/input/submit_button',
'test/views/input/reset_button',
'test/views/input/number',
'test/views/input/date_time',
'test/views/input/date'
];
require(specs, function() {
mocha.run()
})
})
</script>

</body>
</html>

这是我们的一项测试的示例。

(function() {

define(['views/forms/textarea'], function(Textarea) {
'use strict';
return describe('Textarea', function() {
var field;
field = new Textarea;
describe('defaults', function() {
it('is enabled by default', function() {
return assert.isTrue(field.isEnabled());
});
return it('contains one textarea field', function() {
return assert.lengthOf($(field.el).find('textarea'), 1);
});
});
return describe('value', function() {
return it('can have set and get a value', function() {
field.setValue('my super value');
return assert.equal('my super value', field.getValue());
});
});
});
});

}).call(this);

任何帮助将不胜感激。提前致谢。

最佳答案

你试过在 ci 模式下运行 testem 吗?我这样运行它:

% testem ci --launch PhantomJS

只需确保 phantomjs 可执行文件在您的路径中并且一切正常。

关于testing - 从命令行运行时,运行 Mocha 测试(记者 html)的 Backbone Js 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12564795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com