我有一个舞蹈家webapp,我试图测试,我有一些与路径有关的问题。似乎appdir设置未正确设置。
我的测试代码的顶部是:
use MyApp;
use Dancer::Test;
如果我从:
转出设置(使用Data :: Dump中的dd)my $settings = Dancer::Config::settings();
dd $settings;
我明白了:
{ appdir => "/Library/WebServer/Documents/myapp/lib",
apphandler => "Standalone",
auto_reload => 0,
charset => "",
confdir => "/Library/WebServer/Documents/myapp/lib",
content_type => "text/html",
daemon => 0,
engines => {},
envdir => "/Library/WebServer/Documents/myapp/lib/environments",
environment => "development",
handlers => {},
logger => "file",
plugins => {},
port => 3000,
public => "/Library/WebServer/Documents/myapp/lib/public",
server => "0.0.0.0",
server_tokens => 1,
startup_info => 1,
template => "simple",
traces => 0,
views => "/Library/WebServer/Documents/myapp/lib/views",
warnings => 0}
显然它没有正确设置appdir。看起来我调用代码(即工作目录)的重要性并不重要。
由于MyApp.pm需要perl -I lib -I ../lib t/001_base.t
和lib
中的模块,我一直将其称为../lib
,并且需要额外的库调用。
当我运行与bin/app.pl
中具有以下代码的以下独立webapp相同的代码时:
use Dancer;
use MyApp;
dance;
转储设置为我提供了正确的appdir,它可以加载配置文件并正确设置所有其他文件。
在我的测试代码中,我认为添加以下行:
Dancer::set appdir=>"/Library/WebServer/Documents/myapp"
Dancer::Config->load;
会这样做。但是,这会正确设置appdir,但不会更改任何其他参数。从Dancer::Test
代码中,有一个导入命令似乎可以执行我想要的操作,但根本没有任何帮助。还有其他想法吗?