问题标签 [karma-runner]

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 投票
6 回答
21353 浏览

unit-testing - Karma 没有执行任何单元测试

我似乎在让我的 Jasmine 单元测试实际执行时遇到问题。我已经通过将 logLevel 设置为 LOG_DEBUG 来验证我的所有脚本都被加载了。我的单元测试与服务测试@ https://github.com/angular/angular-seed/blob/master/test/unit/servicesSpec.js相同。

另外,我使用过 Testacular(在它更名为 Karma 之前),我不记得有这个问题。我似乎让 Chrome 运行,但我必须手动点击“调试”按钮。即使我按下此按钮,我的测试也不会运行。

系统详情:

  • Windows 7的
  • 节点 v0.10.4
  • 铬 26.0.14
  • Karma 0.8.5(安装了 3 个警告 - 2 个精度损失和一个“内联函数 v8::Persistent v8::Persistent::New(v8::Handle) 没有定义”)

这是我的模块代码(Scripts/main.js):

这是我的规范(Test/unit/servicesSpec.js):

这是我的 karma.conf.js 文件:

0 投票
1 回答
8955 浏览

angularjs - 单元测试 angularjs 指令

我想开始为我的 angularjs 项目进行单元测试。这远非直截了当,我觉得这真的很难。我正在使用业力和茉莉花。对于测试我的路线和应用程序依赖项,我很好。但是您将如何测试这样的指令呢?

});

例如,我将如何测试是否找到了模板?

0 投票
2 回答
4031 浏览

javascript - 将 Karma JavaScript 测试与 Maven 集成

我正在向 Maven 添加基于 Karma 的 JS 单元测试。我使用了以下配置:

当我使用 时,测试在我的机器上单独工作(没有 Maven)karma start karma.conf.js,但是使用 Maven 我得到了以下错误:

这就是我觉得有点奇怪的原因:根据这个 classkarma.conf.js应该默认找到 (@Parameter(defaultValue = "${basedir}/karma.conf.js", property = "configFile", required = true))。另外,我尝试在-DconfigFile=...参数中传递绝对和相对路径,它不起作用。我使用Windows,但我认为这应该不是问题。我不确定配置中到底有什么问题,不胜感激。

0 投票
1 回答
3269 浏览

javascript - Angular 场景 e2e 测试能否集成外部资源工作流

您如何使用 Karma Runner(ex-Testacular)e2e 场景运行器在 e2e 测试中集成异地/应用外/外部资源工作流?

基本场景:

  1. 应用程序有一个按钮。
  2. 单击按钮将数据发送到服务提供商 X(例如提交到http://service/submit或其他)。
  3. 提供商 X 需要在此 URL 处单击/提交/操作。
  4. Provider X 然后将一些东西发送回我们的应用程序。

我不是在问“你如何存根提供者 X”。我在问您如何实际进行端到端测试——所以我们的测试实际上可以捕捉到第 3 方服务 API 的重大更改。我基本上希望能够驱动一个应用外网站,类似于您使用Selenium 的 Webdriver 之类的东西。

目前我的问题是element( ref ).click()用于尝试第 2 步,它似乎没有加载所需的站点,因此没有 DOM 可操作,无法完成 e2e。

0 投票
2 回答
1194 浏览

angularjs - 如何查看 Testacular/AngularJS 测试的错误

我继承了 AngularJS/Testacular/Jasmine 单元测试套件,并且难以确定如何运行测试并查看任何相关的失败消息。也就是说,我可以轻松地运行所有测试,我可以做一些类似ddescribe运行一个测试的事情,我可以看到它失败了。但现在我无法确定它失败的原因。

我已经安装了 Firebug,可以看到 console.log 语句,但看不到 JavaScript 错误(我认为这是一个 JS 错误,因为它突然结束了)。我还看到了 Testacular 的“debug.html”端点,但我不知道如何使用它。

如何查看可能导致测试失败的 JavaScript 错误?

0 投票
1 回答
1928 浏览

twitter-bootstrap - Karma Runner > 在 angular 和 angular-mocks 引发异常之前加载 bootstrap.js

我有一个 angularjs 应用程序,其中包含一些使用 jquery 和引导组件的指令。因此,为了测试指令,我在 karma.unit.conf.js 中定义了以下文件顺序:

如果我先加载 angularjs 和 angular-mocks,然后加载 jquery 和 bootstrap,测试会运行并失败,因为 angular 使用自己的 jQLite。但是,如果我改变了我在这里写的顺序,那么这就是我得到的:

编辑:

我发现导致异常的不是 jQuery ......它是 bootstrap.js。如果我注释 bootstrap.js 行,测试就会运行(并且失败,正如预期的那样,因为从未加载过引导组件)。如果我如上所述加载引导程序(或在测试之前的任何其他地方),那么我会得到这个:

在测试失败之前,该行at /home/ir/work/campari/app/components/jquery/jquery.js:2850无休止地重复了大约 15k 次(这似乎发生在 jQuery 尝试在 jquery.js:1763 处执行 internalData 函数时)。

任何想法将不胜感激

编辑:已解决

找到了答案,这是 2.3.0 版本中的引导问题,更新到 2.3.1 解决了它。见https://github.com/twitter/bootstrap/issues/6835

0 投票
2 回答
4678 浏览

angularjs - 集成 Karma 和 webstorm

我想为 Windows 集成 Karma 和 webstorm,我已经按照这个网站的步骤进行操作:http://mobicon.tistory.com/273 将其翻译成英文)但不起作用。

我创建了一个 Karma 服务器和一个 Karma 运行:

在 Node Js File 文本字段的路径中,我从节点模块中指向了一个业力文件:

C:\Users\xxx\AppData\Roaming\npm-cache\karma\0.8.4\package\bin\karma

在服务器启动和 Karma Run 运行的应用程序参数中

我收到以下错误:

0 投票
1 回答
3431 浏览

node.js - 在节点上安装 Karma 时出错 - 在 OSX 上检索当前目录时出错

我今天一直在努力解决这个问题,无法弄清楚问题出在哪里——不幸的是,谷歌并没有提供太多帮助。

我正在尝试遵循 AngularJS 教程,但无法安装 Karma。每次我尝试时都会收到一条错误消息,提示“检索当前目录时出错:getcwd:无法访问父目录:权限被拒绝”。

这是 bash 中输出的副本:

我正在运行节点 0.10.4,顺便说一句。

不幸的是,我现在有点茫然,所以任何帮助都将不胜感激!

非常感谢,

巴特

编辑 - 2017 年 1 月

我最初在 OSX Mountain Lion 上问过这个问题,但我在新版本的 OSX 上也遇到了类似的问题。我在下面编辑了我的答案,以包括我认为对所有OSX 版本更好的解决方案。

0 投票
2 回答
24517 浏览

javascript - 如何使用 Qunit 将 HTML 固定装置与 Karma 测试运行器一起使用?

我正在使用qunit ( http://qunitjs.com ) 与Karma测试运行器 ( http://karma-runner.github.io/0.8/index.html ) 一起玩。我成功地创建并运行了简单的测试(100% JavaScript),但现在我正在尝试使用 HTML 固定装置来测试与 DOM 节点交互的代码。我可以通过以这种方式在“文件”中声明它们来加载这些固定装置:

它由 karma 的服务器提供服务,但我不明白如何访问它的 DOM :(

假设我的夹具是一个包含以下标记的简单 html 文件:

如何编写可以访问该节点(div)的测试?据我所知,“文档”与“静态”文件夹下的“context.html”文件有关……那么我的灯具的HTML在哪里?

0 投票
1 回答
776 浏览

angularjs - Angularjs e2e 测试过去/未来的比较

我目前正在尝试弄清楚是否有办法进行简单的未来/过去比较。

1) 通过获取列表长度来检查列表的状态 2) 执行如果成功增加列表的操作 3) 将当前列表长度与过去进行比较。

但期货的概念似乎妨碍了我。人们会认为这是一个非常正常的用例。

问:您将如何处理 Angularjs 场景中的过去/未来比较?