如何在 Ember.js 验收测试中调试“找不到模块”?

Posted

技术标签:

【中文标题】如何在 Ember.js 验收测试中调试“找不到模块”?【英文标题】:How to debug "Could not find module" in Ember.js acceptance tests? 【发布时间】:2016-05-31 00:30:18 【问题描述】:

我正在将项目更新到 Ember 2.5.0,但在运行验收测试时偶然发现了一个障碍:在尝试按照 2.5.0 的文档导入 moduleForAcceptance 之后,我出现错误

找不到从timelines-front/tests/acceptance/create-note-test导入的模块timelines-front/tests/helpers/module-for-acceptance

导入行直接来自文档:

import moduleForAcceptance from 'timelines-front/tests/helpers/module-for-acceptance';

我尝试创建一个新的 Ember 项目,其中包含一个测试路线和一个验收测试,全部由 CLI 生成,并且导入按预期工作,所以我假设我的应用程序或测试代码中有一些东西搞砸了import 声明。

试图隔离案例我在ember new 之后尝试了以下操作,但未能成功重现错误:

复制package.jsonbower.json并安装。 比较 testem.jsontestem.js。 检查我的 Phantomjs 版本(运行 2.1.1) 复制 Brocfile.js 并禁用 ember-cli-build.js

我的问题是:如何调试 include 路径 和/或找到应用程序代码中的内容正在更改它并破坏import

【问题讨论】:

【参考方案1】:

这很愚蠢。我忘记检查 ember new 创建的结构中的 tests/helpers 中的文件,这是我在写这个问题时意识到的。 module-for-acceptance.jsdestroy-app.js 文件在那里,我只是将它们复制到我的项目中,错误就消失了。

我现在需要更新验收测试代码以符合新版本。

【讨论】:

以上是关于如何在 Ember.js 验收测试中调试“找不到模块”?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ember js 控制器功能测试中调用路由功能?

检查一个值是否等于Ember Handlebar中的块助手

Ember.JS - 如何在同一页面中使用多个模型、控制器和视图?

Ember.js - 如何在组件视图中呈现默认插座

如何调试在 phantomjs 中运行的 ember-cli 测试

如何在 ember.js 中处理表单提交?