在Dancer中设置appdir :: Test

时间:2015-07-20 14:14:26

标签: perl dancer

我有一个舞蹈家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.tlib中的模块,我一直将其称为../lib,并且需要额外的库调用。

当我运行与bin/app.pl中具有以下代码的以下独立webapp相同的代码时:

use Dancer;
use MyApp;
dance;

转储设置为我提供了正确的appdir,它可以加载配置文件并正确设置所有其他文件。

在我的测试代码中,我认为添加以下行:

Dancer::set appdir=>"/Library/WebServer/Documents/myapp"
Dancer::Config->load;

会这样做。但是,这会正确设置appdir,但不会更改任何其他参数。从Dancer::Test代码中,有一个导入命令似乎可以执行我想要的操作,但根本没有任何帮助。还有其他想法吗?

0 个答案:

没有答案