2015-01-15 21 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