Coldfusion MXUnit模拟权限被拒绝

Coldfusion MXUnit模拟权限被拒绝,coldfusion,coldbox,mxunit,Coldfusion,Coldbox,Mxunit,我终于能够让mxunit和mocking在我的本地Windows安装上运行,但是在sys管理员将它安装到我们的Linux服务器上之后,我只有在使用它时才会出现以下错误。它适用于另一个不需要模拟的应用程序 违规代码: mockLogger = getMockBox().createMock('coldbox.system.logging.Logger'); mockLogger.$("info").$("debug").$("warn").$("error"); model.$property(p

我终于能够让mxunit和mocking在我的本地Windows安装上运行,但是在sys管理员将它安装到我们的Linux服务器上之后,我只有在使用它时才会出现以下错误。它适用于另一个不需要模拟的应用程序

违规代码:

mockLogger = getMockBox().createMock('coldbox.system.logging.Logger');
mockLogger.$("info").$("debug").$("warn").$("error");
model.$property(propertyName="logger", mock=mockLogger);
错误:

/shared/coldbox/system/testing/stubs/9DA00BFE-CBB2-164D-DAB9269585B3E317.cfm (Permission denied)

我应该在test/Application.cfc中设置什么吗?

错误是因为MXUnit/Mockbox正在尝试创建指定的文件,但CF没有写入该位置的权限

通常的修复方法是更新该存根目录的权限,以便CF可以在那里写入和访问文件。(使用/或要求系统管理员执行此操作。)

另一个选项是使用CF有权访问的其他位置。您可以通过在初始化MockBox时将
generationPath
参数传递给MockBox来设置它,或者

new coldbox.system.testing.MockBox( generationPath="path" )
。。。如果你自己初始化它,或者从单元测试开始

getMockBox().init( generationPath="path" )

提供的路径需要是相对的,即cfinclude可以使用的路径,因此可能需要设置映射。

谢谢。我理解这个问题,但我不确定是否有最终用户解决方案,例如控制文件的创建位置。Luis给我指出了getMockBox().init(generationPath=“path”)的方向。Doh,我是个白痴-不知道我怎么会错过写文件而不是阅读,但无论如何我已经更新了答案并提到了这个选项。另外,如果你还没有,可能值得仔细阅读一下Coldbox wiki上的内容——那里有大量的信息。