Несоответствие для ReSharper это помощью QUnit тестов


Я хотел бы использовать встроенный QUnit Test runner Resharper (8.0.2), но есть некоторые различия при запуске теста непосредственно в браузере против запуска его в браузере с помощью R# runner:

  1. Как указано здесь, элемент fixture не добавляется, что необходимо для тестов, связанных с UI. Как описано в ответе, она может быть решена путем ручного добавления элемента в модуль setup + teardown methods.

    Что приводит меня к следующему выпуск:

  2. Resharper только регознает обезличенное setup и teardown, а не их замены (beforeEach и afterEach):

Примечание об устаревании: 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# вести себя больше как " родной кунит" тестовая реализация?

1 2

1 ответ:

Я не уверен, что это именно то, как вы хотите, чтобы это работало, но я хотел запустить более новую версию QUnit, чем та, которая поставляется в комплекте с R#.

Самым простым решением было включить QUnit-1.17.1 в мой проект, а в верхней части моего тестового файла JavaScript включить:

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

Этот файл будет включен перед остальной частью скрипта, поэтому он будет по существу перезаписывать существующее определение QUnit, предоставленное R#.

Могут возникнуть проблемы со столкновениями, но мне удалось заставить это работать:

/// <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 - это расположение файла относительно теста.файл js.