2013-08-07 1 views
4

Когда я запускаю следующий тестовый случай в SimpleTest, Apache падает, если я использую линию B, но все, кажется, работает, если я использую линию А.Apache падает, если я использую возвращаемое значение из функции в SimpleTest тест

class TestPredicateRequest extends UnitTestCase 
{ 
    function testConstructWithPredicate() 
    { 
     Mock::generate("IQueryRequest"); 
     $oRequest = new MockIQueryRequest(); 

     $oPrototype = new QueryPrototype("TEST_COMMAND_STRING", 
             array(1 => QueryTypeConstants::CHARACTER_ID, 
               2 => QueryTypeConstants::CHARACTER_ID), 
             QueryTypeConstants::BOOLEAN); 


     $oRequest->returns("GetArguments", array(2 => 102)); //only argument 2 is set. 
     $oRequest->returns("GetPrototype", $oPrototype); 
     $oRequest->returns("GetUnsetArguments", array(1)); //only argument 1 is unset 

     $oToTest = new CharacterPredicateRequest($oRequest); 

     $this->Here(101);     //LINE A 
     //$oItem = $this->Here(101);  //LINE B 
    } 

    function Here($CharacterID) 
    { 
     return $CharacterID; 
    } 
} 

Какая возможная причина заключается в том, что сохранение возвращаемого значения функции или нет - это то, что контролирует, происходит ли ошибка?


Дополнительная информация:

Если я бросаю исключение либо после линии А или линии B, исключения пузырьков до самого верха, и я получаю результат страницу ошибки, в зависимости от обстоятельств. Это говорит мне о том, что по какой-то причине структура SimpleTest не нравится в случае с линией B. Это потому, что в ней нет утверждений?


Update x2:

Ошибка файла журнала с Apache кажется довольно бесполезен:

[Wed Aug 07 19:57:28.123436 2013] [mpm_winnt:notice] [pid 6908:tid 392] AH00455: Apache/2.4.4 (Win64) PHP/5.4.12 configured -- resuming normal operations 
[Wed Aug 07 19:57:28.123436 2013] [mpm_winnt:notice] [pid 6908:tid 392] AH00456: Server built: Feb 22 2013 22:08:37 
[Wed Aug 07 19:57:28.123436 2013] [core:notice] [pid 6908:tid 392] AH00094: Command line: 'c:\\wamp\\bin\\apache\\apache2.4.4\\bin\\httpd.exe -d C:/wamp/bin/apache/Apache2.4.4' 
[Wed Aug 07 19:57:28.124436 2013] [mpm_winnt:notice] [pid 6908:tid 392] AH00418: Parent: Created child process 2444 
[Wed Aug 07 19:57:28.863478 2013] [mpm_winnt:notice] [pid 2444:tid 284] AH00354: Child: Starting 150 worker threads. 

(Crash would be here) 

[Wed Aug 07 19:59:23.551038 2013] [mpm_winnt:notice] [pid 6908:tid 392] AH00428: Parent: child process 2444 exited with status 255 -- Restarting. 
[Wed Aug 07 19:59:23.751049 2013] [mpm_winnt:notice] [pid 6908:tid 392] AH00455: Apache/2.4.4 (Win64) PHP/5.4.12 configured -- resuming normal operations 
[Wed Aug 07 19:59:23.751049 2013] [mpm_winnt:notice] [pid 6908:tid 392] AH00456: Server built: Feb 22 2013 22:08:37 
[Wed Aug 07 19:59:23.751049 2013] [core:notice] [pid 6908:tid 392] AH00094: Command line: 'c:\\wamp\\bin\\apache\\apache2.4.4\\bin\\httpd.exe -d C:/wamp/bin/apache/Apache2.4.4' 
[Wed Aug 07 19:59:23.755050 2013] [mpm_winnt:notice] [pid 6908:tid 392] AH00418: Parent: Created child process 7288 
[Wed Aug 07 19:59:24.608098 2013] [mpm_winnt:notice] [pid 7288:tid 284] AH00354: Child: Starting 150 worker threads. 
+0

Можете ли вы запустить сценарий на CLI? Это даст некоторые указания. –

+1

Кажется, что есть некоторые проблемы с PHP, Vista и 64 битами. Я вижу, что вы запускаете окна. Возможно, в этом и проблема. Вы должны вернуться к 32 бит. У этого парня такая же проблема: http://forum.wampserver.com/read.php?2,84591,84630 –

+0

Попробуйте обновить PHP и Apache, если вы этого не сделали. Также попробуйте сделать '$ oItem' частной глобальной переменной и сначала инициализировать ее с постоянным значением, прежде чем пытаться присвоить ему результат функции. Стоит! –

ответ

2

это возможно потому, что вы ограничили доступ к памяти для B. используйте set_ini() до -1 в начале вашей страницы, чтобы использовать неограниченные ресурсы.

+0

Huh. Это было так: я отказался от этого и пошел дальше. Хорошее шоу. – jwrush