几天前,我将我的应用程序从3.6.6升级到了3.7.5。在进行升级之前,我运行了所有测试,这些测试提供了以下结果:
//环境
CakePHP版本:3.6.6
PHPUnit版本:6.5.14
//结果
测试:476,断言:1927
//用$ this-> assert
查找Sublime Text 3
1038 $ this-> assert的找到了。
因此:找到1038个$ this-> assert,结果中有1927个断言。
//控制器测试
use Cake\TestSuite\IntegrationTestCase;
class UsersControllerTest extends IntegrationTestCase
{
================================================ ======================
我用作曲家自我更新&&作曲家create-project --prefer-dist cakephp / app app_name创建了一个新项目。 我复制了所有文件,并实施了迁移指南中记录的更改。
我登录后一切正常(中间件csrf令牌不匹配错误除外,但这是另一个问题。)
我再次运行测试,并提供了以下结果。
//环境
CakePHP版本:3.7.5
PHPUnit版本:6.5.8
//结果
测试:497,断言:1135
//用$ this-> assert
查找Sublime Text 3
1059 $ this-> assert的找到了。
因此:找到1059 $ this-> assert,结果中有1135个断言。
//控制器测试
use Cake\TestSuite\TestCase;
use Cake\TestSuite\IntegrationTestTrait;
class UsersControllerTest extends TestCase
{
use IntegrationTestTrait;
================================================ ======================
我已经仔细检查过,我准确地复制了所有内容,并且所有内容都与理解无关 测试结果。
我还使用Sublime Text 3来检查升级后是否没有再调用$ this-> assert 792次,但这考虑到我又进行了21次测试,因此确认这是正确的次数。
我唯一看到的区别是:
在3.6.6 PHPUnit版本中:使用6.5.14。
在3.7.5 TestCase和IntegrationTestTrait中使用。
================================================ ======================
//问题:
我希望有人能帮助我理解为什么我可以再进行21项测试,却减少792条断言?是使用TestCase和IntegrationTestTrait代替IntegrationTestCase或PHPUnit版本差异还是其他方式?
谢谢。 Z
================================================ ======================
@ndm,谢谢您的输入。
我想听从您的建议,但情况已经改变。我今天早上起床,试图复制昨天的结果。我的新3.7.5应用测试结果相同:
//环境
CakePHP版本:3.7.5
PHPUnit版本:6.5.8
//结果
测试:497,断言:1135
然后,我加载了旧的3.6.6应用程序并再次运行测试,但是PHPUnit版本已更改,结果如下:
//环境
CakePHP版本:3.6.6
PHPUnit版本:6.5.8
//结果
测试:497,断言:1135
我以为我昨天犯了一个错误,并复制了错误的文件夹,所以我拿出了未被触及的主备份(一直回到19/01/19)。我在CakePHP版本3.6.6上加载了4个备份。所有这些都显示了这些结果。
//环境
CakePHP版本:3.6.6
PHPUnit版本:6.5.8
//结果
测试:497,断言:1135
所以现在我想知道PHPUnit 6.5.14在哪里?
自19/01/19以来,我已经在CakePHP 3.6.6应用程序上运行了大约50次测试,当您运行测试时,cmd行始终显示PHPUnit版本,因此我知道我在使用PHPUnit 6.5.14。
现在我想知道什么可以解释这个?这也意味着我无法复制昨天的结果。
您的建议使我安心,即:可能有很多不同的事情。另外,我还需要权衡将我与理由相识的好处隔离出来所花费的时间。
就目前而言,我决定将此问题放到待办事项清单上,因为它仍然可以运行所有测试,并且可能就像您提到的那样:也许CakePHP提供的某些断言方法已更改,因此它们内部减少了对PHPUnit断言方法的调用。也许在早期版本中,PHPUnit的计算不正确。也许完全不同,可能有很多原因”,而且到达底部的时间不详。
希望在接下来的几个月中,我可以腾出一些时间来使用它,但目前,我已将其提交到“ Sherlock Holmes和缺少的PHPUnit版本的情况下”。 :)
再次感谢Z。