2015-01-15 4 views
2

Resharper (8.0.2) 통합 qunit 테스트 러너를 사용하고 싶습니다. 브라우저에서 테스트를 직접 실행할 때와 R # 러너를 사용하여 브라우저에서 실행할 때의 몇 가지 차이점이 있습니다.Resharper의 qunit 테스트 러너의 불일치

  1. 로서 UI는 관련 테스트를 위해 필요한, 고정구 요소가 첨가되지 here 지적. 대답에서 설명한대로 모듈 설정 + 해체 방법에서 요소를 수동으로 추가하여 해결할 수 있습니다.

  2. ReSharper에서 만 deperecatedsetupteardown, 그리고 자신의 교체 regognizes (beforeEachafterEach) :

중단 참고 : 다음 문제로 날을 제공

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 번호가 더 "기본 qunit"테스트 구현처럼 행동 할 수있는 방법이 있나요 ?

답변

1

이것이 정확히 작동하는 방법인지 확실하지 않지만 R # 번들과 함께 제공되는 것보다 새로운 버전의 QUnit을 실행하고 싶습니다.

내가 가진 가장 간단한 해결 방법은, 내 프로젝트에 QUnit-1.17.1을 포함하는, 그리고 내 자바 스크립트 테스트 파일의 상단에는 다음과 같습니다

/// <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 파일에 상대적인 파일 위치입니다.

+0

입력 해 주셔서 감사합니다. 이 방법이 효과가있을 수 있지만 최적의 방법은 아닙니다. 나는 실제로 R # 팀에게 물었고, 업데이트 된 QUnit 러너를 얻는 유일한 방법은 미래의 R # 릴리스가 번들로 제공 될 때까지 기다리는 것이 었습니다. 이것은 상당히 불편한 IMO입니다. – Johan

+1

나는 당신이 무엇을 의미 하는지를 안다. R #에게 테스트 문맥을 구성하는 방법을 말할 수 있다면 좋을 것이다. – Matthew