kam ich diesen Beitrag zu ähnlich der Suche nach etwas. Ich habe diesen Testfall:
/**
* test routing logic (numbers method returns an array of numbers and expected outputs to test)
* @dataProvider numbers
*/
function testRoute($input,$expected)
{
$route = new Route($input,'',false);
$route->route();
$this->assertEquals($expected,$route->routingResult);
}
und meine Zahlen Methode ist folgende:
/**
* read pairs of numbers (input <tab> expected) from tests.input separater by tab
* return an array like this: array(array(number1,expected1), array(number2,expected2), ...)
* provide this array to my tests by returning it
*/
function numbers()
{
$testcases = file('tests.input');
$tests = array();
foreach($testcases as $test_case)
{
list($input,$output) = explode("\t",$test_case,2);
$tests[] = array(trim($input),trim($output));
}
return $tests;
}
Was passiert, ist, dass Sie eine Ausgabe wie folgt aus phpunit erhalten:
Starting test 'RouteTest::testRoute with data set #0 ('8596000000', 'rejected (dp not found)x')'.
F
Starting test 'RouteTest::testRoute with data set #1 ('8596000001', 'rejected (rejected by scheme)')'.
.
Starting test 'RouteTest::testRoute with data set #2 ('8596000003', '1599000003')'.
.
Es wird nicht sagen Sie das tatsächliche Ergebnis der getesteten Funktion, es sei denn, der Test schlägt fehl, aber Sie können zumindest alle angegebenen Werte sehen.
Die offensichtliche Frage ... warum? –
Dies ist eine ungewöhnliche Anfrage. Die meisten Leute würden das nicht wollen. Aus diesem Grund würde nichts dergleichen von PHPUnit implementiert werden. Du müsstest es selbst tun. – ryeguy
Unverknüpfte Frage, aber warum brauchen Sie das? "normal", Sie sollten keine Ausgabe während der Tests erzeugen, weil der Zweck automatisch ausgeführt werden soll (ein Mensch sollte die Ausgabe nicht lesen, wenn alles gut gelaufen ist) –