2016-09-02 3 views
4

wenn ich $ phpunit allein führen Sie es nicht still, und das ist, was ich versucht, zu wissen, was das Problem ohne Glück ist:PHPUnit nicht silenlty

$ phpunit 
$ echo $? 
=> 255 

$ php -i | grep error

display_errors => STDOUT => STDOUT 
display_startup_errors => On => On 
error_append_string => no value => no value 
error_log => /usr/local/var/log/php_error.log => /usr/local/var/log/php_error.log 
error_prepend_string => no value => no value 
error_reporting => 32767 => 32767 
html_errors => Off => Off 
ignore_repeated_errors => Off => Off 
log_errors => On => On 
log_errors_max_len => 1024 => 1024 
track_errors => On => On 
xmlrpc_error_number => 0 => 0 
xmlrpc_errors => Off => Off 
xdebug.force_display_errors => On => On 
xdebug.force_error_reporting => 1 => 1 
xdebug.show_error_trace => Off => Off 
opcache.error_log => no value => no value 


phpunit --version 
PHPUnit 6.0-g969991b by Sebastian Bergmann and contributors. 


php --version 
PHP 7.0.10-1 (cli) (NTS) 
Copyright (c) 1997-2016 The PHP Group 
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies 
    with Zend OPcache v7.0.10-1, Copyright (c) 1999-2016, by Zend Technologies 
    with Xdebug v2.4.0, Copyright (c) 2002-2016, by Derick Rethans 

auf Syntaxfehler überprüft, zurück alles ist in Ordnung:

als temporäre Problemumgehung, ich laufe alle tes ts als

find . -name "*_Test.php" -type f -exec phpunit {} \;

php_error.log hat keine Log-Eintrag folgen, und um sicherzustellen, dass nichts auf der Datei writting:

$ truncate -s0 /usr/local/var/log/php_error.log 
$ phpunit 
$ tail /usr/local/var/log/php_error.log 

und ich tun Schreibzugriff müssen Datei tun log: -rw-rw-r-- 1 adam adam 0 Sep 2 11:49 /usr/local/var/log/php_error.log

und sicher zu sein:

$ php -r "error_log('am i logged?');" 
$ tail /usr/local/var/log/php_error.log 
[02-Sep-2016 13:16:37 Europe/Paris] am i logged? 

wenn ich phpunit tests/* nur Dateien im Stammverzeichnis tun Tests ausgeführt werden, geht phpunit nicht rekursiv

diese phpunit.xml

<?xml version="1.0" encoding="UTF-8"?> 
<phpunit backupGlobals="false" 
     backupStaticAttributes="false" 
     colors="true" 
     convertErrorsToExceptions="true" 
     convertNoticesToExceptions="true" 
     bootstrap="bootstrap.php" 
     convertWarningsToExceptions="true" 
     processIsolation="false" 
     stopOnFailure="false"> 
    <testsuites> 
     <testsuite name="Application Test Suite"> 
      <directory suffix=".php">./tests</directory> 
     </testsuite> 
    </testsuites> 
</phpunit> 

ist, und dies ist der Inhalt des Bootstrap. pHP-Datei

<?php 

// 
// Author: Oussama Elgoumri 
// Email : ktsnepyg[email protected] 
// 
// Wed Aug 31 17:13:04 WEST 2016 
// 


require_once __DIR__ . '/vendor/autoload.php'; 
require_once dirname(dirname(__FILE__)) . '/wp-load.php'; 
require_once ABSPATH . 'wp-admin/includes/admin.php'; 


use Dotenv\Dotenv; 


do_action('admin_init'); 

(new Dotenv(__DIR__)) 
    ->load(); 

i wissen, gibt es keine Fehler, die seltsam ist, echo $? Rückkehr 255 nach phpunit läuft, weil, wenn ich

psysh bootstrap.php führen Sie es ohne Fehler

arbeitet schätzen ich werde jede Hilfe, auch wenn es hacki, ich möchte nur die Testabdeckung laufen und einen Bericht erstellen. danke

UPDATE

als temporäres workarround ich alle Tests mit diesem Befehl ausführen: find . -name "*_Test.php" -type f -exec phpunit {} \;

Test einzelne Datei

$ phpunit tests/Upload__FN_Test.php 
PHPUnit 5.5.4 by Sebastian Bergmann and contributors. 

.                 1/1 (100%) 

Time: 1.27 seconds, Memory: 24.00MB 

OK (1 test, 1 assertion) 

Test aller Dateien in einem Verzeichnis das Verzeichnis sollte NICHT enthalten Unterverzeichnisse sonst wird es, wie oben mit 255 Fehler erklärt fail

$ phpunit tests/src/Uptobox/Workflow_PHP/ 
PHPUnit 5.5.4 by Sebastian Bergmann and contributors. 

.....                5/5 (100%) 

Time: 7.03 seconds, Memory: 26.00MB 

OK (5 tests, 6 assertions) 

Testdateien in einem Verzeichnis mit Testabdeckung

$ phpunit tests/src/Uptobox/Workflow_PHP/ --coverage-text --whitelist src/Uptobox/Uptobox.php 
PHPUnit 5.5.4 by Sebastian Bergmann and contributors. 

.....                5/5 (100%) 

Time: 6.93 seconds, Memory: 28.00MB 

OK (5 tests, 6 assertions) 


Code Coverage Report:  
    2016-09-02 12:35:00  

Summary:     
    Classes: 0.00% (0/1) 
    Methods: 75.00% (3/4) 
    Lines: 90.91% (10/11) 

\App\Uptobox::Uptobox 
    Methods: 75.00% (3/ 4) Lines: 90.91% (10/ 11) 

Was ich bisher feststellen, ist als Solange das Zielverzeichnis keine Unterverzeichnisse enthält, verarbeitet phpunit alle Testdateien in diesem Verzeichnis, andernfalls schlägt es im Hintergrund fehl.

+2

Sie haben einen Fehler dort: '' ('valaue'). Vielleicht ist das der Grund. – BVengerov

+0

Haben Sie in './Tests' nach zirkulären Symlinks gesucht? –

Antwort

0

Ihr Verzeichnissuffix ist wahrscheinlich falsch.

hier: Sie versuchen, jede PHP-Datei als Test auszuführen:

<testsuites> 
    <testsuite name="Application Test Suite"> 
     <directory suffix=".php">./tests</directory> 
    </testsuite> 
</testsuites> 

Aber hier bist du sie zu beschränken auf "* _Test.php"

find . -name "*_Test.php" -type f -exec phpunit {} \; 

Versuchen:

<testsuites> 
    <testsuite name="Application Test Suite"> 
     <directory suffix="Test.php">./tests</directory> 
    </testsuite> 
</testsuites> 
Verwandte Themen