0

Tower 0.4.2-20の使用:例に従い、コードはすべて生成されたようですが、テストを実行すると、ファクトリ定義されていないエラーが発生します。

具体的には:

tower new app
cd app
npm install
tower generate scaffold Post title:string body:text
tower generate scaffold User firstName:string lastName:string email:string
npm test

収量:

 1) PostsController routes show:

      actual expected

      /posts/undefined



  2) PostsController routes edit:

      actual expected

      /posts/undefined/edit



  3) PostsController #index "before each" hook:
     Error: Factory 'post' doesn't exist.
      at Function.Tower.Factory.options [as get] (/home/jeremy/repos/tower/lib/tower-support/shared/factory.js:84:13)
      at Function.Tower.Factory.factory [as create] (/home/jeremy/repos/tower/lib/tower-support/shared/factory.js:73:17)
      at global.factory (/home/jeremy/test/towapp/test/server.coffee:21:42)
      at Context.get.format (/home/jeremy/test/towapp/test/cases/controllers/server/postsControllerTest.coffee:46:16)
      at Hook.Runnable.run (/home/jeremy/test/towapp/node_modules/mocha/lib/runnable.js:187:15)
      at next (/home/jeremy/test/towapp/node_modules/mocha/lib/runner.js:201:10)
      at Runner.hook (/home/jeremy/test/towapp/node_modules/mocha/lib/runner.js:212:5)
      at process.startup.processNextTick.process._tickCallback (node.js:244:9)

私はこれを自分でデバッグしようとし、GithubからTowerをビルドしてそれにリンクしました。上記のように、Towerのリポジトリのバージョンのコードを使用していますが、そこでも行き詰まっています。デバッグの印刷/ログステートメントを作成する正しい方法がわかりません。console.logとthis.debug.logを試しましたが、どちらの場合も、ログメッセージがコンソールまたはログファイルに書き込まれることはありません。実際、ログディレクトリにログが作成されることはありません。

編集して追加:もう少し進歩しました。Tower.Factory.defineメソッドが呼び出されていません。ただし、Factoryクラスは存在します。

Tower.Factory.define 'post', ->
  title: Tower.random('words')
4

1 に答える 1

1

私が子供たちをベッドに寝かせたら、これは実際にはかなり簡単に解決できました:)。工場のファイルは単に含まれていませんでした。この行をtest/server.coffeeファイルに追加すると、この問題が修正されました。

app.requireDirectory('./test/factories')

ジェネレーターの1つ(tower-generator / server / generators / token / app / templates / data / seeds.coffee)でそのようなものを見つけましたが、ジェネレーターをまだ理解していないので、これが実際にどこに意図されているのかわかりません行く。

console.log(私はそれを見落としていました)に関しては、実際にdefineメソッドを呼び出した後、コンソールにありました:)

于 2012-10-17T01:00:37.870 に答える