Perl 在Dancer::Test中设置appdir
我有一个舞者网络应用程序,我正在尝试测试,我有一些与路径相关的问题。似乎未正确设置appdir设置 我的测试代码的顶部是:Perl 在Dancer::Test中设置appdir,perl,dancer,Perl,Dancer,我有一个舞者网络应用程序,我正在尝试测试,我有一些与路径相关的问题。似乎未正确设置appdir设置 我的测试代码的顶部是: use MyApp; use Dancer::Test; 如果我从以下位置转储设置(使用来自Data::dump的dd): 我得到: { appdir => "/Library/WebServer/Documents/myapp/lib", apphandler => "Standalone", auto_reload => 0
use MyApp;
use Dancer::Test;
如果我从以下位置转储设置(使用来自Data::dump的dd):
我得到:
{ 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。我如何调用代码(即工作目录)似乎并不重要
我一直把它称为perl-I lib-I../lib t/001_base.t
,另外还有一些库调用,因为MyApp.pm需要lib
和。/lib
中的模块
当我运行与独立webapp相同的代码时,bin/app.pl
中包含以下代码:
use Dancer;
use MyApp;
dance;
转储设置会给我提供正确的appdir,它加载配置文件并正确设置所有其他设置
在我的测试代码中,我认为添加以下行:
Dancer::set appdir=>"/Library/WebServer/Documents/myapp"
Dancer::Config->load;
我会的。但是,这会正确设置appdir,但不会更改任何其他参数。从
Dancer::Test
代码中,有一个import命令,它似乎执行了我想要的操作,但根本没有帮助。还有其他想法吗?嗯,我有一个新的舞者应用程序。你能用新的应用程序重现这种行为吗?另外,我找不到有关Dancer::Config::settings
…的任何文档。通常不应该使用未记录的函数。看起来我找到了我的错误。它似乎来自于在其他路线装载。我最初将我的其他路由编写为包,并加载了use
,但似乎我应该使用load
。其中一些代码可以追溯到几年前,也许事情已经改变了。嗯,我用一个新的舞者应用程序。你能用新的应用程序重现这种行为吗?另外,我找不到有关Dancer::Config::settings
…的任何文档。通常不应该使用未记录的函数。看起来我找到了我的错误。它似乎来自于在其他路线装载。我最初将我的其他路由编写为包,并加载了use
,但似乎我应该使用load
。其中一些代码可以追溯到几年前,也许事情已经改变了。
Dancer::set appdir=>"/Library/WebServer/Documents/myapp"
Dancer::Config->load;