2

Jasmine 有iit()and ddescribe,Mocha 有it.onlyand describe.only,但我看不出有任何方法可以让 QUnit 专注于运行单个测试。

QUnit UI 允许您运行单个测试,但我看不出如何让它在 Karma 中工作,因为它不显示 QUnit UI。

4

4 回答 4

3

这是我的解决方案。它对我来说很好,但是 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() 函数分别只运行选定的模块或测试。

于 2013-12-23T13:21:29.130 回答
2

QUnit 不是为此而设计的,但你可以改进它!

QUnit 的过滤机制是validTest读取QUnit.config.filter(字符串,测试名称)的函数。见https://github.com/jquery/qunit/blob/master/src/core.js#L820

有两个问题:

  1. 它只允许选择一项测试,
  2. 您需要提前知道所选的测试名称(因为测试在创建时会被过滤)。

建议将 QUnit 更改为:

  • 使用自定义“过滤器”功能过滤(默认实现可以做当前validTest所做的事情),
  • 执行时过滤测试(意味着首先收集所有测试)

然后,实施包容性测试将很简单;-)

于 2013-10-07T00:03:04.490 回答
1

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.

于 2014-11-02T13:44:41.707 回答
1

我相信你可以使用only. 取自文档:

test('my test 1', function (assert) { ... });

only('my test that will be run exclusively now', function (assert) { ... });

所以不要使用 word test,而是使用only.

于 2017-09-25T18:38:48.753 回答