Ember CLI:尝试注册未知工厂:`controller:object`

时间:2016-05-01 00:08:17

标签: ember.js ember-cli ember-testing

我的ember-cli版本是0.2.3。我尝试运行测试时收到以下错误。

TypeError: Attempting to register an unknown factory: `controller:object`
    at Object.Registry.register (http://localhost:7357/assets/vendor.js:12208:15)
    at Object.container.(anonymous function) [as register] (http://localhost:7357/assets/test-support.js:1905:44)
    at Object.isolatedContainer [as default] (http://localhost:7357/assets/test-support.js:1946:15)
    at exports.default.klassy.Klass.extend._setupIsolatedContainer (http://localhost:7357/assets/test-support.js:2406:52)
    at exports.default.klassy.Klass.extend.setupContainer (http://localhost:7357/assets/test-support.js:2312:14)
    at nextStep (http://localhost:7357/assets/test-support.js:2300:53)
    at exports.default.klassy.Klass.extend.invokeSteps (http://localhost:7357/assets/test-support.js:2305:14)
    at exports.default.klassy.Klass.extend.setup (http://localhost:7357/assets/test-support.js:2275:19)
    at Object.qunit.module.setup (http://localhost:7357/assets/test-support.js:1814:16)
    at runHook (http://localhost:7357/assets/test-support.js:3534:20)

对于可能导致此问题的任何想法?看起来像是一个ember-cli内部问题。

我实际上正在使用Ember CLI的v2.3.0-beta.2。当你启动它时,由于某种原因它在终端上显示v0.2.3。

Ember版本是2.0。

我对触发此操作的模型进行了单元测试。该测试使用的是moduleFor而不是moduleForModel,因为我的应用并未使用Ember数据。

1 个答案:

答案 0 :(得分:1)

  

我实际上使用的是Ember CLI的v2.3.0-beta.2。当你启动它时,由于某种原因它在终端上显示v0.2.3。

这是因为全局安装的Ember CLI与项目package.json中指定的版本不同。

当您运行命令时Ember CLI会检查它是否在Ember项目中。它通过检查当前或父目录中的package.json文件来完成此操作。如果找到它,它会将命令委托给您的项目所依赖的Ember CLI。

这样做是为了确保调用的命令(生成,构建等)是正确的版本,并且不会破坏您的应用程序。