如何修复Ember testem中的测试,例如“无法加载”,“失败”,“找不到模块”或“死亡”等错误?

时间:2015-05-01 16:05:08

标签: ember-cli testem karma-coverage

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

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

Ember网站确实为v1.10提供了“跑步者自动化测试”页面,其中有关于'testem'和'karma'的部分,但它没有出现在v1.11中,所以我无法从中看出什么是或不相关的网站。但似乎我应该能够为karma测试运行器找到解决方案,所以我将旧的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'(以及其他一些业力骗局)并更新了内部路径(从'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'在浏览器中加载,但无法“找到”任何资产文件(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在带有测试报告的浏览器中加载。当我取消选中“隐藏通过的测试”时,报告显示'29通过,28失败'。它有11个部分,其中特定测试可能有3个问题,例如“无法加载”,“失败”,“无法找到模块”,“尝试注册未知工厂”或“死亡”。

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

2 个答案:

答案 0 :(得分:4)

我在节点升级后遇到“没有运行测试,......”问题。我用:

修复了它
Bitmap b = new Bitmap(
    GetResourceStream("myapp.res.icon.png",
    System.Reflection.Assembly.GetExecutingAssembly());
var b2 = b;
var b3 = b;

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

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

答案 1 :(得分:0)

我在MS Windows上遇到Cannot read property 'slice' of undefined错误,通过MSys2运行。我使用普通karma init提示符中的cmd解决了这个问题。