Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 在Dancer::Test中设置appdir_Perl_Dancer - Fatal编程技术网

Perl 在Dancer::Test中设置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

我有一个舞者网络应用程序,我正在尝试测试,我有一些与路径相关的问题。似乎未正确设置appdir设置

我的测试代码的顶部是:

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;