2016-11-17 10 views
2

IをアプリケーションにDancer2のスキーマ、mはTest::DBIx::Class::Schema. を使用して、私のDancer2アプリスキーマの健全性テストを実行しようと、私はtest.tを作成し、私のメインのappディレクトリに配置されました( /tフォルダ内にはありません)。ファイルには、次のようになります。は、テストを設定するには、立ち下がり:: DBIx ::クラス::

#!/usr/bin/perl 

use Test::More 'no_plan'; 
use Test::DBIx::Class::Schema; 
use Dancer2::Test app => ['PearlBee']; 
use lib 'lib'; 
use lib::PearlBee::Model::Schema; 

use strict; 
use warnings; 

# the order is important 


BEGIN { 
    use_ok 'Test::DBIx::Class::Schema'; 
    #use_ok 'lib::PearlBee::Model::Schema'; 
    use_ok 'Dancer2::Test', app => 'PearlBee'; 
    use_ok 'lib::PearlBee::Model::Schema';# apps => ['PearlBee']; 

    # 
    #use_ok 'DBICx::TestDatabase'; 
} 

#my $schema = DBICx::TestDatabase->new('lib::PearlBee::Model::Schema'); 


my $schematest = Test::DBIx::Class::Schema->new(
    { 
     # required 
     dsn  => 'dbi:mysql:PearlBee;host=localhost;', # or use schema option 
     namespace => 'lib::PearlBee::Model::Schema', 
     moniker => 'user', 
     # optional 
     username => 'root', 
     password => '1', 
     glue  => 'Result', 
     #test_missing => 1, 
    } 
); 

$schematest->methods(
     { 
      columns => [ 
       qw[ 
        id 
        salt 

       ] 
      ], 

      resultsets => [ 
      qw[ User 
      ] 
     ], 
     } 
    ); 

$schematest->run_tests(); 

私は次の出力でクラッシュ:

Can't locate object method "connect" via package "lib::PearlBee::Model::Schema" 

はこのうち意味を理解するために私を助けてください。

答えて

2

これらの行は、面白そうに見える:

use lib 'lib'; 
use lib::PearlBee::Model::Schema; 

最初のものはOKらしいです。なぜあなたは@INCに 'lib'を追加したいのか分かります。しかし、私は2番目の行があることを期待したい、ということで行わた:

use PearlBee::Model::Schema; 

モジュール名の前にlib::ことが必要だろうということは非常に考えにくいです。しかし、おそらくあなたのディレクトリ構造は私が想定しているより複雑です。 PearlBeeスキーマモジュールはどこですか?

更新:

非推奨:またDancer2::Test documentationの最新バージョンがこれを言うことに注意してください。代わりにPlack::Testを使用してください。

このモジュールは、実際にモジュールを取り外すまでしばらく警告します。これは、システムから完全に削除するのに十分な時間を提供する です。

このアドバイスに従うことをお勧めします。

+1

'$ schematest'の設定でも' namespace => 'lib :: PearlBee :: Model :: Schema'、 '... this' lib :: 'も間違っています。 – dgw

関連する問題