【发布时间】:2016-02-13 04:35:17
【问题描述】:
我需要能够在浏览器中执行 mocha 测试。不使用 cli 工具通过终端在浏览器中运行测试。从字面上看,浏览器中的所有内容。目标是在用户单击按钮后运行规范。
我在浏览器中正确设置了 mocha,但有些缓存行为让我感到困惑。
https://plnkr.co/edit/nuZZyD5EsMtpgP66HtW5?p=preview
HTML:
<div id="mocha"></div>
<button id="test">run test</button>
JS:
(function(init, $, runner) {
init();
$('#test').addEventListener('click', runner)
})(
function init() {
mocha.setup('bdd');
},
function $(sel) {
return document.querySelector(sel);
},
function specRunner(e) {
describe('test at ' + new Date().getTime(), function() {
it('should add 1 + 1', function() {
chai.assert(1 + 1 === 2, 'added 1 + 1');
});
});
mocha.run();
}
)
我使用过的其他测试工具(qunit、jasmine、karma、量角器)都鼓励(强制?)用户在启动跑步者之前定义所有规格。这与我想要实现的目标相反:以编程方式定义规范,而不是在运行时。
在 plnkr 中,似乎 mocha 正在缓存以前的规范,然后在每次点击时运行所有这些规范。我怎样才能避免这种行为?
【问题讨论】:
-
为什么需要在您的站点中执行测试?
-
因为这是一个奇怪的古怪边缘情况,根本不推荐使用 webdriver。最终目标是在 chrome 扩展中放置一个“规范运行器”。我只是不想推出自己的测试库。
-
我不知道你的具体情况,但我真的不鼓励你做这样的事情。尽管如此,我还是发布了一个(我认为)可以解决您的问题的答案。
标签: javascript mocha.js