Yii CAssetManager.basePath在PHPUnit测试中无效
我运行测试时遇到问题。我的模型使用扩展名Yii-mail,然后使用错误的断言路径运行测试。最后运行另一个测试(模型不使用任何扩展)。预加载只是日志。我解决了这个问题Yii CAssetManager.basePath在PHPUnit测试中无效,yii,phpunit,yii-extensions,Yii,Phpunit,Yii Extensions,我运行测试时遇到问题。我的模型使用扩展名Yii-mail,然后使用错误的断言路径运行测试。最后运行另一个测试(模型不使用任何扩展)。预加载只是日志。我解决了这个问题 public function setUp(){ Yii::app()->assetManager->basePath = '../../asserts'; } 我不知道为什么这个错误只出现在一个模型中…我解决了这个问题 public function setUp(){
public function setUp(){
Yii::app()->assetManager->basePath = '../../asserts';
}
我不知道为什么这个错误只出现在一个模型中…我解决了这个问题
public function setUp(){
Yii::app()->assetManager->basePath = '../../asserts';
}
我不知道为什么这个错误只在一个模型中抛出…PhpUnit在CLI模式下运行,因此缺少一些环境变量。Yii的AssetManager使用其中一个变量来确定webroot,由于该变量不存在,它将在第一次尝试时抛出错误或设置无效的资产路径 在我看来,这个问题是(间接地)由PHPUnit引起的,因为它只支持CLI测试模式,这使得一些东西确实比在HTTP请求模式下更难测试。因此,一些人编写了工具,通过标准的web GUI和整个本机HTTP环境(例如)来运行单元测试。最终,您可以使用诸如Selenium之类的HTTP客户端来运行测试,就像在页面上单击一样(请参阅)
然而,这是一个主观观点的问题——有人可能会说,CLI模式下的测试有优势,有些人会讨厌它。但事实是,我们必须记住HTTP和CLI模式之间的差异。PhpUnit在CLI模式下运行,因此缺少一些环境变量。Yii的AssetManager使用其中一个变量来确定webroot,由于该变量不存在,它将在第一次尝试时抛出错误或设置无效的资产路径 在我看来,这个问题是(间接地)由PHPUnit引起的,因为它只支持CLI测试模式,这使得一些东西确实比在HTTP请求模式下更难测试。因此,一些人编写了工具,通过标准的web GUI和整个本机HTTP环境(例如)来运行单元测试。最终,您可以使用诸如Selenium之类的HTTP客户端来运行测试,就像在页面上单击一样(请参阅)
然而,这是一个主观观点的问题——有人可能会说,CLI模式下的测试有优势,有些人会讨厌它。但事实是,我们必须记住HTTP和CLI模式之间的差异。我有一个类似的错误,我在
config/test.php
中显式设置了basePath
'components'=>array(
...
'assetManager'=>array(
'basePath'=>dirname(__FILE__).'/../../assets',
)
)
我有一个类似的错误,我在
config/test.php
中显式设置了basePath
'components'=>array(
...
'assetManager'=>array(
'basePath'=>dirname(__FILE__).'/../../assets',
)
)