Jasmine有iit()
和ddescribe
,而Mocha有it.only
和describe.only
,但我看不出有什么办法让QUnit专注于运行单个测试
QUnit UI允许您运行单个测试,但我无法看到如何在Karma中使用它,因为它不显示QUnit UI。
答案 0 :(得分:3)
这是我的解决方案。它对我来说很好,但YMMV。
从here下载qunit-karma-setup.js,qunit-karma-launch.js
然后,在你的Gruntfile中:
config.set({
frameworks: ['qunit'],
files: [
'your-app-files-here/**/*.js',
'qunit-karma-setup.js',
'your-tests-here/**/*.js',
'qunit-karma-launch.js'
]
});
现在,您可以使用omodule(),otest(),oasyncTest()函数分别仅运行选定的模块或测试。
答案 1 :(得分:2)
QUnit设计不是很好,但你可以改进它!
QUnit的过滤机制是validTest
函数,读取QUnit.config.filter
(字符串,测试名称)。见https://github.com/jquery/qunit/blob/master/src/core.js#L820
有两个问题:
建议将QUnit更改为:
validTest
所做的事情),然后,实施包容性测试将很简单; - )
答案 2 :(得分:1)
将其添加到测试文件的顶部
var ttest = test;
test = function() {}
将要运行的测试重命名为ttest
。看起来很笨拙,但很简单,效果很好。
答案 3 :(得分:0)
我相信你可以使用only
。取自文档:
test('my test 1', function (assert) { ... });
only('my test that will be run exclusively now', function (assert) { ... });
因此,您使用test
。
only