2015-01-15 61 views
2

我想用ReSharper的(8.0.2)综合qunit测试运行器,而是直接在浏览器中运行测试时,VS使用R#亚军在浏览器中运行它还是有一些区别:不一致的ReSharper的qunit测试跑步

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

    这使我的下一个问题:

  2. ReSharper的只是regognizes的deperecatedsetupteardown,而不是它们的替代品(beforeEachafterEach):

弃用注:beforeEach和afterEach以前命名的安装和拆卸,这仍然存在,将在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·表现得更像一个“本地qunit”测试实施?

回答

1

我不知道如果这正是你想要如何工作,但我想跑QUnit的新版本比自带的R·捆绑在一起的一个。

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

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

这将包括的其余部分之前该文件脚本,所以它基本上会覆盖R#提供的现有QUnit定义。

有可能是有冲突的问题,但我能得到这个工作:与常规R·测试跑步

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

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

测试成功。

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

+0

感谢您的输入。这可能会起作用,但它并不是最理想的。我实际上询问了R#团队,他们都告诉我,获得更新的QUnit亚军的唯一方法就是等待一个与未来的R#版本捆绑在一起,这对于IMO来说是相当令人失望的。 – Johan 2015-02-13 20:44:21

+1

我知道你的意思,如果你能告诉R#如何配置测试上下文将会很好。 – Matthew 2015-02-13 20:50:20