Как я могу заставить Codeception выводить сравнения массивов в формате PHPUnit?

Когда я использую PHPUnit, и он терпит неудачу, потому что два массива не равны, он сравнивает каждый элемент в массивах по одному. Однако, когда я использую Codeception (который использует PHPUnit для своих модульных тестов), он показывает мне, что весь массив отличается, что менее полезно. Как я могу заставить Codeception выводить сравнение для массивов так же, как это делает PHPUnit? Кажется, в документации Codeception ничего об этом нет.

Дамп PHPUnit:

C:\server\Apache24\htdocs\localhost\public_html\codeception_vs_phpunit>phpunit tests\BasicTest.php
PHPUnit 4.3.4 by Sebastian Bergmann.

F

Time: 141 ms, Memory: 3.75Mb

There was 1 failure:

1) BasicTest::testFoo
Failed asserting that two arrays are equal.
--- Expected
+++ Actual
@@ @@
 Array (
     0 => 0
     1 => 1
     2 => 2
     3 => 3
-    4 => 4
+    4 => 42
     5 => 5
     6 => 6
     7 => 7
     8 => 8
     9 => 9
 )

C:\server\Apache24\htdocs\localhost\public_html\codeception_vs_phpunit\tests\BasicTest.php:33

FAILURES!
Tests: 1, Assertions: 1, Failures: 1.

Дамп кода:

C:\server\Apache24\htdocs\localhost\public_html\codeception_vs_phpunit>codecept run
Codeception PHP Testing Framework v2.2.1
Powered by PHPUnit 4.8.26 by Sebastian Bergmann and contributors.

Acceptance Tests (0) ---------------------------------------
------------------------------------------------------------

Functional Tests (0) ---------------------------------------
------------------------------------------------------------

Unit Tests (1) ---------------------------------------------
x BasicTest: Foo
------------------------------------------------------------


Time: 1.57 seconds, Memory: 11.00MB

There was 1 failure:

---------
1) BasicTest: Foo
 Test  tests\unit\BasicTest.php:testFoo
Failed asserting that two arrays are equal. ( -Expected | +Actual )
- Array (
-     0 => 0
-     1 => 1
-     2 => 2
-     3 => 3
-     4 => 4
-     5 => 5
-     6 => 6
-     7 => 7
-     8 => 8
-     9 => 9
- )
+ Array (
+     0 => 0
+     1 => 1
+     2 => 2
+     3 => 3
+     4 => 42
+     5 => 5
+     6 => 6
+     7 => 7
+     8 => 8
+     9 => 9
+ )

#1  C:\server\Apache24\htdocs\localhost\public_html\codeception_vs_phpunit\tests\unit\BasicTest.php:34
#2  BasicTest->testFoo
#3  C:\usr\bin\codecept.phar:7

FAILURES!
Tests: 1, Assertions: 1, Failures: 1.

person CJ Dennis    schedule 29.06.2016    source источник


Ответы (1)


Обновление до Codeception 2.2.2

https://github.com/Codeception/Codeception/blob/2.2/CHANGELOG.md#222

  • Улучшенные сообщения о различиях в ошибках от @k0pernikus
person Naktibalda    schedule 30.06.2016
comment
Вчера вечером я попытался обновиться и получил массивное сообщение об ошибке о том, что один из классов не загружается. У меня не было времени исследовать, поэтому я просто вернулся к 2.2.1. Я попробую еще раз, когда у меня будет время, и посмотрю, смогу ли я исправить ошибку. - person CJ Dennis; 30.06.2016
comment
Не могли бы вы привести пример, как выглядит вывод diff массива в кодецепции 2.2.2? Я не могу найти в Интернете. А в нашем проекте апгрейд этого сложен, один раз пробовал, но получил слишком много ошибок из-за других зависимостей, выглядит невозможным без торможения чего-то. Так что хорошо бы узнать, стоит ли. - person Dariux; 25.02.2017