Resharper的qunit测试跑步者不一致

时间:2015-01-15 16:51:28

标签: resharper qunit

我想使用Resharper(8.0.2)集成的qunit测试运行器,但是直接在浏览器中运行测试与使用R#runner在浏览器中运行测试时存在一些差异:

  1. 正如here所指出的,未添加fixture元素,这是UI相关测试所需要的。如答案中所述,可以通过在模块设置+拆卸方法中手动添加元素来解决。

    这让我想到了下一期:

  2. Resharper只会识别deperecated setupteardown,而不是他们的替代品(beforeEachafterEach):

    < / LI>
      

    DEPRECATION注意:beforeEach和afterEach以前被命名为setup和teardown,它们仍然存在,将在QUnit 2.0.0中删除。

    module("Tests for DOM manipulation", {
        beforeEach: function () { // never called in the R# runner
            $("body").append('<div id="qunit-fixture" />');
        }
    });
    
    test('finding qunit-fixture element', function(){
        var elementCount = $('#qunit-fixture').length;
        ok(elementCount, 1);
    });
    

    最后,test()回调函数不会返回assert个对象,即:

    test('foo', function(assert){
        var done = asssert.async(); // assert is undefined in R# qunit runner
        setTimeout(function (){
            ok(1 === 1);
            done();
        }, 500);
    });
    

    有没有什么方法可以让R#表现得像一个&#34;原生qunit&#34;测试实施?

1 个答案:

答案 0 :(得分:1)

我不确定这是否正是您希望它如何工作,但我想运行一个比R#捆绑的QUnit更新版本。

我最简单的解决方案是将QUnit-1.17.1包含在我的项目中,并在我的JavaScript测试文件的顶部包括:

/// <reference path="../lib/qunit-1.17.1.js" />

这将在脚本的其余部分之前包含该文件,因此它将基本上覆盖R#提供的现有QUnit定义。

碰撞可能存在问题,但我能够让它发挥作用:

/// <reference path="../lib/qunit-1.17.1.js" />

QUnit.test('this is my test', function(assert) {
    assert.equal(1, 1);
});

测试成功与常规R#测试运行器。

为了澄清,路径 ../ lib / qunit-1.17.1.js 是相对于test.js文件的文件位置。