问题标签 [js-test-driver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
585 浏览

javascript - jQuery Ajax 测试不起作用

我正在尝试测试一个非常简单的 jQuery 插件,它只需调用 $.ajax 方法并将其内容放入元素中。对于测试,我使用 JsTestDriver 和 Sinon 进行模拟。

插件文件看起来:

理论上很简单的插件。

然后我写了一个单元测试模拟成功函数:

它似乎也正确。然后,如果您执行此测试,将通过控制台打印下一行:

所以成功函数正确接收“alex”字符串。然后打印 $(this) 引用,使用 html() 函数设置消息,当我记录以前的设置值时,返回 null。最后一条日志消息在测试文件中,您可以在其中看到未设置 ajax 文本。

有人知道我做错了什么吗?因为我确信我错过了一些现在我看不到的东西。

0 投票
1 回答
106 浏览

javascript - jsTestDriver:运行测试时出现org.jvyaml.ParserException

我尝试使用 jsTestDriver 运行 javascript 测试。当我开始测试时,发生了异常。

异常描述

当 jsTestDriver 的 .conf 文件在 args 中只包含一个文件路径时,不会出现该问题,例如:

0 投票
1 回答
427 浏览

javascript - JsTestDriver,测试函数的名称

测试函数的名称有什么限制吗?

当我将以下内容编写为testA()andtestB()时,它们都将被实现。

但是如果我将名称从“testB”更改为“AjaxCreateT”,testA()就会执行。太奇怪了。有人可以帮忙吗?

0 投票
1 回答
1818 浏览

continuous-integration - 如何在 Jenkins 上使用远程浏览器执行 js-test-driver 任务?

我们使用 Jenkins 将 .NET Web 应用程序与 NAnt/NUnit 持续集成以进行 .NET 测试。Jenkins 配置了 9 个从属设备(所有这些从属设备都是 Windows Server 2003),它们运行许多构建及其自动化测试。

我们正在尝试设置 js-test-driver 来运行我们的 JavaScript 单元测试,并且下面的 NAnt 任务在开发人员工作站上本地运行良好。Internet Explorer 是我们想要测试的唯一浏览器,因为它是我们所有 Web 应用程序的唯一目标浏览器。

我们在 Jenkins 上遇到相同任务的问题,可能是因为:

  1. 它是一台服务器,我们作为服务帐户运行
  2. 服务器上的浏览器安装存在安全限制

js-test-driver wiki上的GettingStarted页面说我们可以在与运行 js-test-driver 服务器的机器不同的机器上运行浏览器:

在运行任何测试之前,您需要启动测试服务器并捕获至少一个从属浏览器。服务器不必驻留在测试运行器所在的机器上,浏览器本身也可以在不同的机器上。

  1. 有人在 Jenkins/Windows 设置上做过这个吗?
  2. 对于运行 js-test-driver 的可扩展设置,还有其他替代方案吗?
0 投票
1 回答
2139 浏览

javascript - JSTestDriver 覆盖 eclipse 插件

我正在使用 JSTestDriver Eclipse 插件,我想安装覆盖插件:有人知道如何让它在 Eclipse 中工作吗?

提前致谢

其他需要注意的事项:我在 Win XP 64 位,Eclipse 版本:面向 Web 开发人员的 Eclipse Java EE IDE。版本:Helios Service Release 2 Build id:20110218-0911

.conf 文件中的插件部分是:

0 投票
1 回答
270 浏览

javascript - JStestDriver assertEquals("000011",11) 不应该是假的吗?

我预计 JSTD 将“000011”(字符串)视为不等于 11(数字)。

但是,看看他实际的 JSTD 代码,assertEquals 返回

仅当元素之一是对象时,否则返回

这不是错的吗?

0 投票
4 回答
4806 浏览

javascript - Jasmine + JSTestDriver + Coverage + RequireJS

哇,真是一团糟。这就是场景。

  • 骨干驱动的 JS 应用程序。
  • AMD 功能的 RequireJS,初始化如下:

    然后在 main.js 中使用以下配置代码:

    每个 Backbone View/Model/Router 都是一个“define(...)”模块,并且在 main.js 中调用了一次“require("theOneRouter", ...)”。

  • r.js 用作 Uglify/Closure 的优化器。在 ./release 子文件夹中创建了一个“已编译”的 main.js,我在 .net 框架中动态选择了该子文件夹。

  • 花了很长时间才让 Backbone + Require.JS 工作,但现在工作得很好!

  • 然后在上面拍打茉莉花也需要一些定制工作,但效果很好。我必须从我的 SpecRunner.html 加载 require.js,使用 require 的 define(...) 调用将每个测试模块定义为 AMD,然后我从一次对 require 的 require(...) 调用的调用中实例化并运行 Jasmine在 SpecRunner.html 中:

    这也很好用。测试加载并运行,没有问题。Require 处理一切。

现在,我想要一个像 JSTestDriver 这样的框架来充当我的跑步者。我选择 JSTD 是因为它简单、能够在远程浏览器上进行测试、支持代码覆盖率,但我仍然愿意接受其他建议。

JSTestDriver 本身工作正常,我唯一的问题是将 JSTD + Jasmine + ReuireJS 组合在一起运行。最大的问题是,如果我在配置文件中告诉 JSTD 关于 Jasmine/Require 测试模块以便加载它,我会收到以下错误:

http://requirejs.org/docs/errors.html#mismatch

如果我使用 r.js 将我的所有代码优化到一个 main.js 中,那么组合工作,包括 Coverage,但覆盖率被收集在一个巨大的文件中并且难以分析。更不用说检测一个 50k 行代码的 js 文件并通过 JSTD 运行它需要很长时间。

我尝试创建一个类似夹具的 js 文件来加载我所有的 Jasmine 测试模块和代码模块,但我不断返回上面的“不匹配”错误,并且,如果我没有单独告诉 JSTD 每个模块(通过加载一个 html /js 夹具进行真正的加载)它们不会被检测到代码覆盖率。

有没有人让这个特定的组合起作用?可能是我要求太高了……

0 投票
1 回答
519 浏览

javascript - JStestDriver 可以用来测试 JSP 文件中的 js 代码吗?

快速提问:

是否可以对编写在 JSP 文件中的 Javascript 代码进行单元测试,尤其是使用 JStestDriver?

还是我必须将其提取到外部 js 文件中?

0 投票
2 回答
1210 浏览

unit-testing - 使用带有 jsTestDriver 的闭包库

我正在通过编写一个简单的 JavaScript 游戏来学习谷歌关闭工具。我无法弄清楚如何设置 jsTestDriver 以便它与闭包库一起工作。

具体来说:我想使用 goog.require 机制来包含任何额外的 JavaScript 文件,而不是必须手动将它们全部添加到配置文件中。

按照 meyertee 的建议,我制作了一个简单的脚本来自动将依赖项写入配置文件

tests/jsTestDriver.conf.proto 文件是一个简单的模板:

这是一个非常脆弱的脚本,但希望有人(除了我)会发现它有用。

0 投票
2 回答
3590 浏览

coffeescript - Require.JS 和 JS 测试驱动程序:意外的令牌 <

我正在尝试测试通过 RequireJS 加载的简单主干模型:

我的测试看起来像:

JS 测试驱动程序配置:

从 Chrome 控制台上的 JS 测试驱动程序监听页面看到的问题:

未捕获的 SyntaxError:意外的令牌 <

从 Chrome 中查看 Todo.js,

注意它是一个 HTML 页面,而不是我的实际 JS。也console.log(Todo)返回undefined,因为返回的是 HTML 页面而不是 JS。我配置错了吗?