【问题标题】:Skipping a test in Qunit在 Qunit 中跳过测试
【发布时间】:2012-12-06 16:31:27
【问题描述】:

我刚刚找到了qHint,这是一种将 jsHint 测试集成到 Qunit 中的方法……但它在本地(我不是指 localhost)除了 Firefox 之外不起作用。

所以我想添加一个“警告”或“通知”,而不是测试失败,表明测试被跳过:

// do unit test if not local or local and running Firefox
t = QUnit.isLocal;
if (!t || (t && /Firefox/.test(navigator.userAgent))) {
    jsHintTest('JSHint core check', 'js/myplugin.js');
} else {
    test('JSHint core check (skipped)', function(){
        ok( true, 'check not done locally' );
    });
}

我只是想让测试被跳过的情况更加明显,这可能吗?


更新:感谢 Odi 的回答!但我必须稍作修改才能使代码在 QUnit v1.11.0pre 中工作:

QUnit.testSkip = function( testName, callback ) {
    QUnit.test(testName + ' (SKIPPED)', function() {
        if (typeof callback === "function") {
            callback();
        }
        var li = document.getElementById(QUnit.config.current.id);
        QUnit.done(function() {
            li.style.background = '#FFFF99';
        });
    });
};
testSkip = QUnit.testSkip;

【问题讨论】:

标签: qunit jshint


【解决方案1】:

我有同样的要求,我只是定义了一种新的test(),我称之为testSkip()

此测试方法只是替换您的测试函数并将名称更改为<test name> (SKIPPED)。之后,QUnit 认为测试通过了。

为了进一步表明这是一个跳过的测试,我为每个跳过的测试添加了一个回调函数到QUnit.done,以将 HTML 输出中的测试颜色更改为黄色。这些回调在测试套件完成时执行。直接设置值是行不通的,因为 QUnit 在运行结束时应用了通过/失败测试的样式。

QUnit.testSkip = function() {
   QUnit.test(arguments[0] + ' (SKIPPED)', function() {
       QUnit.expect(0);//dont expect any tests
       var li = document.getElementById(QUnit.config.current.id);
       QUnit.done(function() {
           li.style.background = '#FFFF99';
       });
   });
};
testSkip = QUnit.testSkip;

那么你可以使用testSkip() 代替test() 来跳过测试。

对于我的测试套件,结果如下所示:

【讨论】:

  • 我必须稍作修改才能让它在 QUnit v1.11.0pre(上面发布)中工作。谢谢!
  • 您需要在修改后的测试中添加ok(true);,否则 QUnit v1.2 会抱怨测试中的断言为零。
  • @FrancoisVanderseypen 测试中有 are 零断言,用expect(0); 代替不是更好吗?
  • +1,跳过运行任何设置/拆卸代码来跳过测试仍然会很好。关于如何实现这一目标的任何线索?
【解决方案2】:

对于任何可能对 cme​​ts 感兴趣的人,Mottie 对这个问题的评论指出 Qunit now has a skip() function。只需将任何对 test() 的调用替换为 skip() 即可跳过该测试。

【讨论】:

    猜你喜欢
    • 2015-08-05
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多