2016-09-02 3 views
4

когда я бегу $ phpunit в одиночку он не тихо, и это то, что я пытался узнать, что проблема не повезло:PHPUnit терпит неудачу 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 

проверка на наличие ошибок синтаксиса, вернуть все в порядке:

for f in $(find tests/) 
> do php -l $f 
> done 
... 

как временное обходное решение, я запускаю все tes ц, как следовать

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

php_error.log не имеет запись в журнале, и чтобы убедиться, что ничего не сочинительство на файл:

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

и у меня есть доступ на запись сделать лог-файл: -rw-rw-r-- 1 adam adam 0 Sep 2 11:49 /usr/local/var/log/php_error.log

и безопасна:

$ 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? 

когда я делаю phpunit tests/* только файлы на корневом каталоге тестов выполняющихся, PHPUnit не идет рекурсивно

это 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> 

и это содержание загрузчика. PHP файл

<?php 

// 
// Author: Oussama Elgoumri 
// Email : [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(); 

я знаю, что нет никаких ошибок, что является странным, echo $? возвращение 255 после запуска PHPUnit, потому что, когда я бегу

psysh bootstrap.php работает без ошибок

я буду признателен за любую помощь, даже если это hacki, я просто хочу, чтобы запустить тестовое покрытие и подготовить отчет. спасибо

UPDATE

в качестве временного workarround я выполнить все тесты, используя эту команду: find . -name "*_Test.php" -type f -exec phpunit {} \;

тест одного файла

$ 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) 

тест все файлы в справочник каталог должен НЕ содержать подкаталоги в противном случае она не будет выполнена, как описано выше с 255 ошибкой

$ 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) 

тестовые файлы в каталоге с тестового покрытия

$ 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) 

Что я замечаю до сих пор, как поскольку целевой каталог не содержит каких-либо подкаталогов, phpunit обрабатывает все тестовые файлы в этом каталоге, иначе он терпит неудачу.

+2

У вас есть опечатка: '' ('valaue'). Возможно, это и есть причина. – BVengerov

+0

Вы проверяли круговые символические ссылки в './Tests'? –

ответ

0

Суффикс вашего каталога, вероятно, неверен.

Здесь вы пытаетесь выполнить каждый файл PHP как тест:

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

Но здесь вы ограничиваете его в "*" _Test.php

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

Try:

<testsuites> 
    <testsuite name="Application Test Suite"> 
     <directory suffix="Test.php">./tests</directory> 
    </testsuite> 
</testsuites> 
Смежные вопросы