2012-02-09 2 views
1

Я думаю, что в настоящее время пользователей Chutzpah не так много, но, надеюсь, я найду их здесь.Указатель ошибки вне диапазона с использованием расширения Visual Studio Chutzpah

Я работаю над демо Pavlov, поэтому я могу сравнить его с традиционными тестами QUnit и показать моей команде преимущества BDD. Я наткнулся на Чутцу по дороге и подумал, что было бы здорово интегрироваться в мой проект.

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

------ Test started: File: C:\Users\U0120711\Documents\Visual Studio 2010\Projects\Behave\StaticContent\tests\Calculator\calculatorTest.js ------ 
Chutzpah Error Occured: 
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. 
Parameter name: index 
    at System.ThrowHelper.ThrowArgumentOutOfRangeException() 
    at Chutzpah.TestResultsBuilder.Build(BrowserTestFileResult browserTestFileResult) 
    at Chutzpah.TestRunner.RunTestsFromHtmlFile(String headlessBrowserPath, TestOptions options, TestContext testContext, List`1 testResults, ITestMethodRunnerCallback callback) 
    at Chutzpah.TestRunner.RunTests(IEnumerable`1 testPaths, TestOptions options, ITestMethodRunnerCallback callback) 
While Running:C:\Users\U0120711\Documents\Visual Studio 2010\Projects\Behave\StaticContent\tests\Calculator\calculatorTest.js 

========== Total Tests: 0 passed, 0 failed, 0 total ========== 

Вот мои тесты:

Павлов спецификация: тест

/// <reference path="../../js/External/jQuery/jquery-1.7.1.js" /> 
/// <reference path="../../js/External/qunit/qunit.js" /> 
/// <reference path="../../js/External/pavlov/pavlov.js" /> 
/// <reference path="../../js/Calculator/Calculator.js" /> 

pavlov.specify("The behavior of a calculator", function() { 
    describe("Calculator", function() { 
     var calculator; 
     before(function() { 
      calculator = new Calculator(); 
     }); 

     given([2, 0], [3, 0], [4, 0]). 
      it("returns zero when multiplying by zero", function (x, y) { 
       assert(0).equals(calculator.multiply(x, y)); 
      }); 

     given([2, 1], [3, 1], [4, 1]). 
      it("returns the multiplicand when multiplying by one", function (x, y) { 
       assert(x).equals(calculator.multiply(x, y)); 
      }); 
    }); 
}); 

QUnit:

/// <reference path="../../js/External/jQuery/jquery-1.7.1.js" /> 
/// <reference path="../../js/External/qunit/qunit.js" /> 
/// <reference path="../../js/Calculator/Calculator.js" /> 

var calculator; 

module("Calculator", { 
    setup: function() { 
     calculator = new Calculator(); 
    } 
}); 

$.each([[2, 0], [3, 0], [4, 0]], function (index, pair) { 
    test("given " + pair[0] + "," + pair[1] + ", returns zero when multiplying by zero", function() { 
     equal(0, calculator.multiply(pair[0], pair[1])); 
    }); 
}); 

$.each([[2, 1], [3, 1], [4, 1]], function (index, pair) { 
    test("given " + pair[0] + "," + pair[1] + ", returns the multiplicand when multiplying by one", function() { 
     equal(pair[0], calculator.multiply(pair[0], pair[1])); 
    }); 
}); 

Есть ли что-то, что я делаю в своих тестах, которые могут вызвать ошибку VS? Или там где-то есть ошибка, которую я еще не нашел?

Любые советы приветствуются, но, пожалуйста, воздержитесь от комментариев по моей общей стратегии тестирования, поскольку я хорошо осведомлен о недостатках. Это только, например, цели :)

ответ

1

Эта проблема является ошибкой в ​​том, как Chutzpah определяет номера строк. Я только что развернул версию 1.3.2 (CodePlex, Vs Gallery и NuGet), которая позволит Chutzpah обрабатывать эту ошибку, чтобы вы все еще получали результаты теста. Однако в приведенном выше коде определение номера строки не будет работать правильно. Я установил отдельный issue для исправления этого.

Смежные вопросы