Jasmine 有iit()
and ddescribe
,Mocha 有it.only
and describe.only
,但我看不出有任何方法可以让 QUnit 专注于运行单个测试。
QUnit UI 允许您运行单个测试,但我看不出如何让它在 Karma 中工作,因为它不显示 QUnit UI。
Jasmine 有iit()
and ddescribe
,Mocha 有it.only
and describe.only
,但我看不出有任何方法可以让 QUnit 专注于运行单个测试。
QUnit UI 允许您运行单个测试,但我看不出如何让它在 Karma 中工作,因为它不显示 QUnit UI。
这是我的解决方案。它对我来说很好,但是 YMMV。
从这里下载 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() 函数分别只运行选定的模块或测试。
QUnit 不是为此而设计的,但你可以改进它!
QUnit 的过滤机制是validTest
读取QUnit.config.filter
(字符串,测试名称)的函数。见https://github.com/jquery/qunit/blob/master/src/core.js#L820
有两个问题:
建议将 QUnit 更改为:
validTest
所做的事情),然后,实施包容性测试将很简单;-)
Add this on the top of your test file
var ttest = test;
test = function() {}
And rename the test you want to run to ttest
. Looks clumsy, but simple and works well.
我相信你可以使用only
. 取自文档:
test('my test 1', function (assert) { ... });
only('my test that will be run exclusively now', function (assert) { ... });
所以不要使用 word test
,而是使用only
.