我如何修复 Ember testem 中存在 'could not load'、'failed'、'could not find module' 或 'died' 等错误的测试?

How can I fix tests in Ember testem with errors such as 'could not load', 'failed', 'could not find module' or 'died'?

我设法将几个基于 EAK/grunt 的 Ember 应用程序升级到带有 HTMLBars 的 1.11,然后将它们迁移到 Ember CLI/Brocolli。单元测试是为 karma test 运行ner 设置的,所以我现在正在研究如何在 CLI 项目中获得那些 运行ning,但我没有编写测试并且真的没有经验单元测试 javascript 个模块。

搜索 iNet,我可以看到其他人也使用了 karma,因为它的覆盖率输出并试图让它与 Ember CLI 一起工作,但是 Ember Core 不是'不支持它,尽管他们说任何人都应该能够使用自定义插件来设置它。我也在尝试使用 'testem' 运行ner 看看有什么坚持。

Ember 站点确实有一个 v1.10 的 'automating tests with runners' 页面,其中包含有关 'testem' 和 'karma' 的部分,但它没有出现在 v1.1 中。 11 所以我无法从该站点判断什么是相关的或不相关的。但似乎我应该能够为 karma 测试 运行ner 制定一个解决方案,所以我将旧的 devDependencies 添加到项目 package.json:

"karma": "^0.12.31",
"karma-chai": "~0.1.0",
"karma-chrome-launcher": "~0.1.2",
"karma-coverage": "~0.2.1",
"karma-firefox-launcher": "~0.1.3",
"karma-junit-reporter": "~0.2.1",
"karma-mocha": "~0.1.3",
"karma-phantomjs-launcher": "~0.1.2",
"karma-sinon-chai": "~0.1.5"

我还在项目中删除了旧的 'karma.conf.js'(连同其他一些 karma confs)并更新了内部路径(从 'vendor' 到 'bower_components')。我确实找到了一个 'ember-cli-karma' 节点模式并安装了它,但它似乎只有一个 'package.json'。它没有文档,看起来只是一个没有实现的简单的入门项目。我还安装了 'karma'、'karma-cli' 和 'testem' 节点模块。

testem 文档说要将您的 src 和测试文件添加到 'testem.json',但是没有示例我不知道那是什么意思;每个 src 和测试文件的列表?用什么路径;相对的,绝对的?正斜杠,反斜杠?以 / 或 ./ 或 ../ 开头?我只是将它们排除在外,因为我认为系统只是按照惯例找到 src 和测试。

当我 运行 'karma init' 我得到:

readline.js:529
this.line = this.line.slice(this.cursor);
                   ^
  TypeError: Cannot read property 'slice' of undefined

当我 运行 'testem' 我得到:

TEST'EM 'SCRIPTS!
Open the URL below in a browser to connect.
http://localhost:7357/aN;0faN;NaNf

...然后项目的'../tests/index.html'在浏览器中加载,但无法'find'任何资产文件(css, js) 因此没有任何内容可以正确执行或呈现。我只看到模板表达式({{content-for 'head'}} 等)。

当我 运行 'ember test' 我得到:

Building...BuildingBuilding.Building..Building...Built project successfully.

1..0
# tests 0
# pass  0
# fail  0

# ok
No tests were run, please check whether any errors occurred in the page (ember test --server) and ensure that you have a test launcher (e.g. PhantomJS) enabled.

当我 运行 'ember test --server' 我得到:

测试 index.html 在浏览器中加载测试报告。当我取消选中 'hide passed tests' 时,报告显示“29 次通过,28 次失败”。它有 11 个部分,其中特定测试可能有 3 个问题,例如 'could not load'、'failed'、'could not find module'、'attempting to register an unknown factory' 或 'died'。

有了这个,我显然 运行宁 testem 而不是业力,所以不妨努力让 testem 工作并在以后找出业力。如果有更多示例和迁移故障排除文档,我可能会有系统的方法来解决其中的一些问题。

我最近在节点升级后 运行 遇到了 "No tests were run,..." 问题。我用一个修复它:

npm install -g phantomjs

这也提供了一些额外的选项:

https://github.com/ember-cli/ember-cli/issues/3969

我在 MS Windows、运行 上通过 MSys2 遇到了 Cannot read property 'slice' of undefined 错误。我已经通过在普通 cmd 提示符下使用 karma init 解决了它。