Утверждения PHPUnit Test отличаются после обновления с 3.6.6 до 3.7.5 - PullRequest
1 голос
/ 27 марта 2019

Пару дней назад я обновил свое приложение с 3.6.6 до 3.7.5.Перед обновлением я выполнил все свои тесты, которые дали следующие результаты:

// Среда Версия CakePHP: 3.6.6Версия PHPUnit: 6.5.14

// Результаты Тесты: 476, утверждения: 1927

// Sublime Text 3 найти с помощью $ this-> assert 1038 $ this-> assert's found.Поэтому: 1038 $ this-> assert found и 1927 подтверждений в результатах.

// Проверка контроллера

use Cake\TestSuite\IntegrationTestCase;

class UsersControllerTest extends IntegrationTestCase
{

======================================================================

Я создал новый проект с самообновлением композитора && composer create-project--prefer-dist cakephp / app имя_приложения.Я скопировал все файлы и применил изменения, описанные в руководстве по миграции.

Я вошел в систему и все заработало (за исключением ошибки несоответствия токена промежуточного программного обеспечения csrf, но это еще одна проблема.)

Iснова запустил мои тесты и, при необходимости, получил следующие результаты.

// Среда Версия CakePHP: 3.7.5Версия PHPUnit: 6.5.8

// Результаты Тесты: 497, утверждения: 1135

// Sublime Text 3 найти с помощью $ this-> assert 1059 $ this-> assert's found.Следовательно: найдено 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 тест.

Единственные различия, которые я вижу:

  1. В 3.6.6 используется IntegrationTestCase.
  2. В 3.6.6 используется версия PHPUnit: 6.5.14.

  3. В 3.7.5 используются TestCase и IntegrationTestTrait.

  4. В 3.7.5 используется версия PHPUnit: 6.5.8.

======================================================================

// Вопрос:

Я надеюсь, что кто-то может помочь мне понять, почему я могу сделать еще 21 тест, но у меня на 792 меньше утверждений?Это использование TestCase и IntegrationTestTrait вместо IntegrationTestCase или различие версий PHPUnit или что-то еще?

Спасибо.Z.

===========================================================================

@ ndm, спасибо за ввод.

Я быЯ хотел бы последовать вашему совету, но ситуация изменилась.Я встал сегодня утром и попытался повторить результаты вчерашнего дня.Мои новые результаты тестирования приложения 3.7.5 были такими же:

// Environment Версия 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).Я загрузил 4 резервных копии всего на CakePHP версии 3.6.6.Все они показывают эти результаты.

// Среда Версия 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 неправильно вычислял вещи в более ранних версиях. Может быть, что-то совершенно иное, может быть много причин", и это неизвестное количество времени, чтобы добраться доbottom of.

Надеюсь, что в течение следующих нескольких месяцев я смогу освободить некоторое время, чтобы заняться этим, но на данный момент я подал его под рубрикой «Шерлок Холмс и случай с отсутствующей версией PHPUnit».:)

Еще раз спасибо, Z.

...