【问题标题】:Running html QUnit tests as part of TFS build gives an error about start() outside of test context作为 TFS 构建的一部分运行 html QUnit 测试会在测试上下文之外给出关于 start() 的错误
【发布时间】:2017-01-25 16:52:59
【问题描述】:

使用 instructions here,我正在尝试通过 chutzpah 配置 QUnit 测试

错误是:

Error: Error: Error: Called start() outside of a test context while already started
at start in https://cdnjs.cloudflare.com/ajax/libs/qunit/1.18.0/qunit.min.js (line 11)
at startQUnit (line 12)
at onPageLoaded (line 16)

测试的格式如下:

module('Product - Somme Condition', {
    setup: function () {
        $('#Markup').append('<div>...</div>');
    },
    teardown: function () {
        $('#Markup').empty();
    }
});

test('Given When Then', function () {
  //..
});

HTML runner 的设置如下:

<!DOCTYPE html>
<html>
<head>
    <title>Product Test Runner</title>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/qunit/1.18.0/qunit.min.css" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/qunit/1.18.0/qunit.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/blanket.js/1.1.4/blanket.min.js"></script>
    <script src="../../BuildFiles/someDependency.js"></script>
    <script src="../../BuildFiles/product.js"></script>
    <script src="../Tests/Product/ProductTest.js"></script>
</head>
<body>
    <form>
        <div id="qunit"></div>
        <div id="qunit-fixture"></div>
        <div id="Markup"></div>
    </form>
</body>
</html>

该步骤设置为 Visual Studio 测试步骤:


(一旦工作,我会将其更改为 *.html,它只是更容易测试一个,所有文件的行为相同并且结构如上)

测试在日志中显示为“通过”,但构建步骤尚无定论。我怎样才能把它变成绿色?

-- 编辑

使用example QUnit test

即,

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>QUnit Example</title>
  <link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.2.1.css">
</head>
<body>
  <div id="qunit"></div>
  <div id="qunit-fixture"></div>
  <script src="https://code.jquery.com/qunit/qunit-2.2.1.js"></script>
  <script src="tests.js"></script>
</body>
</html>

并通过以下方式调用 chutzpah:

chutzpah.console.exe C:\Dev_Scratch\testRunner.html

错误输出为:

Chutzpah 控制台测试运行程序(64 位 .NET 4.0.30319.42000)版本 4.3.4.0 版权所有 (C) 2016 Matthew Manela (http://matthewmanela.com)。

错误:错误:在测试已经开始运行时调用 start() https://code.jquery.com/qunit/qunit-2.2.1.js(第 2550 行)开始 在 onPageLoaded(第 16 行)(第 18 行)处开始 QUnit(第 12 行)而 运行:C:\Dev_Scratch\testRunner.html

错误:错误:在测试已经开始运行时调用 start() 而 运行:C:\Dev_Scratch\testRunner.html

文件:C:\Dev_Scratch\testRunner.html 共 1 个,0 个失败,耗时 0.01 秒

测试完成:1 === 共 1 个,0 个失败,耗时 2.52 秒 ===

【问题讨论】:

  • 当您使用 chutzpah.console.exe 应用程序在本地运行时,这是否有效?
  • @MatthewManela 从 chutzpah.console.exe 运行时出现同样的错误。在浏览器中打开 html 文件是可以的。

标签: qunit chutzpah


【解决方案1】:

构建定义中没有可以更改状态的内置选项。

带 ✓ 的黄色表示部分通过。

如果您想将构建状态更改为绿色。作为一种解决方法,您可以使用批处理文件来运行您的测试。然后你只需要Redirecting Error Messages from Command Prompt: STDERR/STDOUT。这样就可以了。

【讨论】:

  • 感谢您的回复,这听起来像是一个合理的选择...但我宁愿配置 QUnit 测试或 chutzpah 以不首先抛出错误:-)
猜你喜欢
  • 2015-10-11
  • 1970-01-01
  • 1970-01-01
  • 2017-12-30
  • 2012-10-13
  • 1970-01-01
  • 2016-08-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多