【问题标题】:Running QUnit (TypeScript) tests with Chutzpah gives "Called start() outside of a test context while already started"使用 Chutzpah 运行 QUnit (TypeScript) 测试会给出“在测试上下文之外调用 start() 而已经启动”
【发布时间】:2015-10-11 00:06:54
【问题描述】:

我有一个相当简单的重现,但结果我不明白。

确保您已安装 Chutpah 测试适配器 4.0.3。使用 Visual Studio 2013 执行以下步骤:

  1. 新建一个 .NET 4.5.1 类库项目;
  2. 添加NuGet包qunit.TypeScript.DefinitelyTyped0.1.7;
  3. 将 TypeScript 文件 file1.ts 添加到项目中,内容如下:

    /// <reference path="./Scripts/typings/qunit/qunit.d.ts"/>
    QUnit.test("QUnit is working", assert => assert.ok(true));
    
  4. 在该文件内单击鼠标右键,然后从上下文菜单中选择“运行 JS 测试”。

我可以确认file1.js 已按预期生成。

结果是没有运行测试,测试资源管理器显示没有测试,测试输出显示:

Error: Error: Called start() outside of a test context while already started
at start in file:///C:/Users/username/AppData/Local/Microsoft/VisualStudio/12.0/Extensions/abcxyz/TestFiles/QUnit/qunit.js (line 287)
at startQUnit in phantomjs://webpage.evaluate() (line 12)
at onPageLoaded in phantomjs://webpage.evaluate() (line 16)
in phantomjs://webpage.evaluate() (line 18)
While Running:c:\users\username\documents\visual studio 2013\Projects\ClassLibrary3\ClassLibrary3\file1.ts
------ Test started: File: c:\users\username\documents\visual studio 2013\Projects\ClassLibrary3\ClassLibrary3\file1.ts ------
Error: Error: Called start() outside of a test context while already started
While Running:c:\users\username\documents\visual studio 2013\Projects\ClassLibrary3\ClassLibrary3\file1.ts
0 passed, 0 failed, 0 total (chutzpah).

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

如果我选择“在浏览器中打开”Chutzpah 上下文菜单项,我会得到一个常规的 QUnit 测试页面,它的格式很好,显示零测试运行。

显然预期的结果是成功运行了一项测试。

我在这里错过了什么?

【问题讨论】:

    标签: javascript visual-studio-2013 typescript qunit chutzpah


    【解决方案1】:

    天啊! The Chutzpah + TypeScript documentation其实很清楚这一点:

    您需要告诉 Chutzpah 如何使用 chutzpah.json 文件中的编译设置将文件编译成 JavaScript。

    对于问题中的场景,例如这些步骤让它工作:

    1. chutzpah.json 文件添加到项目的根目录。
    2. 输入以下代码:

      {
          "Compile": {
              "Mode": "External",
              "Extensions": [".ts"],
              "ExtensionsWithNoOutput":  [".d.ts"]
          }
      }
      

      在此之后右键运行已经改善,显示:

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

      如果这不能立即关闭并重新打开解决方案

    3. 要让测试显示在测试资源管理器中,您需要将它们分组到模块中,例如通过将此添加到file1.ts

      QUnit.module("Qu.Testing");
      

    有关详细信息,请参阅Compile Setting documentation

    如果其他人落入与我相同的陷阱,请将其留在这里。

    【讨论】:

      猜你喜欢
      • 2013-11-27
      • 1970-01-01
      • 1970-01-01
      • 2016-08-05
      • 1970-01-01
      • 1970-01-01
      • 2012-10-13
      • 1970-01-01
      • 2016-05-28
      相关资源
      最近更新 更多