Visual studio 使用Chutzpah';索引超出范围的错误;s Visual Studio扩展

Visual studio 使用Chutzpah';索引超出范围的错误;s Visual Studio扩展,visual-studio,unit-testing,qunit,pavlov,chutzpah,Visual Studio,Unit Testing,Qunit,Pavlov,Chutzpah,我认为目前没有太多的Chutzpah用户,但希望我能在这里找到一些 我正在制作一个巴甫洛夫的演示,这样我就可以将它与传统的QUnit测试进行对比,并向我的团队展示BDD的优势。一路上我无意中发现了Chutzpah,我认为将它集成到我的项目中会很酷 当我右键单击并在浏览器中运行测试时,它们都可以正常工作,但如果我右键单击并在VS中运行测试,则会出现以下错误: ------ Test started: File: C:\Users\U0120711\Documents\Visual Studio 2

我认为目前没有太多的Chutzpah用户,但希望我能在这里找到一些

我正在制作一个巴甫洛夫的演示,这样我就可以将它与传统的QUnit测试进行对比,并向我的团队展示BDD的优势。一路上我无意中发现了Chutzpah,我认为将它集成到我的项目中会很酷

当我右键单击并在浏览器中运行测试时,它们都可以正常工作,但如果我右键单击并在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));
            });
    });
});
/// <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]));
    });
});
//
/// 
/// 
/// 
指定(“计算器的行为”,函数(){
描述(“计算器”,函数(){
var计算器;
前(函数(){
计算器=新计算器();
});
给定([2,0],[3,0],[4,0])。
它(“乘以零时返回零”,函数(x,y){
断言(0).equals(计算器.乘法(x,y));
});
给定([2,1],[3,1],[4,1])。
它(“乘以1时返回被乘数”,函数(x,y){
断言(x).equals(计算器.乘法(x,y));
});
});
});
质量测试:

/// <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));
            });
    });
});
/// <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]));
    });
});
//
/// 
/// 
var计算器;
模块(“计算器”{
设置:函数(){
计算器=新计算器();
}
});
$。每个([[2,0],[3,0],[4,0]],函数(索引,对){
测试(“给定”+对[0]+,“+对[1]+”,乘以零时返回零”,函数(){
相等(0,计算器。乘法(对[0],对[1]);
});
});
$。每个([[2,1],[3,1],[4,1]],函数(索引,对){
test(“给定“+pair[0]+”,“+pair[1]+”,乘以1时返回被乘数”,函数(){
相等(对[0],计算器。乘法(对[0],对[1]);
});
});
在我的测试中是否有可能导致VS错误的事情?还是有一个我还没有找到的bug修复程序


任何提示都非常感谢,但请不要评论我的一般测试策略,因为我很清楚这些缺陷。这只是为了举例:)

这个问题是Chutzpah确定行号的方式的一个缺陷。我刚刚部署了版本1.3.2(,和),它将允许Chutzpah处理这个错误,这样您仍然可以得到测试结果。但是,在代码上面的行号检测将无法正常工作。我已经提交了一份单独的文件来解决这个问题。

这个问题是Chutzpah确定行号的一个错误。我刚刚部署了版本1.3.2(,和),它将允许Chutzpah处理这个错误,这样您仍然可以得到测试结果。但是,在代码上面的行号检测将无法正常工作。我已经提出了单独的解决方案