2016-06-29 30 views
0

Wenn ich PHPUnit verwende und es fehlschlägt, weil zwei Arrays nicht gleich sind, vergleicht es jedes Element innerhalb der Arrays einzeln. Wenn ich jedoch Codeception (die PHPUnit für seine Komponententests verwendet) verwende, zeigt es mir, dass das gesamte Array anders ist, was weniger nützlich ist. Wie kann ich Codeception veranlassen, den Vergleich für Arrays auf die gleiche Weise wie PHPUnit auszugeben? Es scheint nichts in der Codeception-Dokumentation darüber zu geben.Wie bekomme ich Codeception, um Array-Vergleiche im PHPUnit-Format auszugeben?

PHPUnit dump:

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. 

Codeception dump:

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. 

Antwort

0

Upgrade auf Codeception 2.2.2

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

  • Bessere Ausfall diff Nachrichten von @ k0pernikus
+0

Ich versuchte letzte Nacht zu aktualisieren und ich bekam eine massive Fehlermeldung über eine der Klassen nicht geladen. Ich hatte keine Zeit zu untersuchen, also kehrte ich einfach zu 2.2.1 zurück. Ich werde es nochmal versuchen wenn ich Zeit habe und schauen ob ich den Fehler beheben kann. –

+0

Könnten Sie ein Beispiel geben, wie die Array-Diff-Ausgabe in Codeception 2.2.2 aussieht? Ich kann nicht im Internet finden. Und in unserem Projekt ist das Upgraden kompliziert, sobald ich es ausprobiert habe, aber ich habe zu viele Fehler wegen anderer Abhängigkeiten bekommen, sieht so aus als wäre es unmöglich, etwas abzubremsen. Also wäre es gut zu wissen, ob es sich lohnt. –