Как сделать перезагрузку phpunit в консольном приложении, используя php - PullRequest
0 голосов
/ 16 февраля 2019

Я создаю консольное приложение, чтобы помочь мне разработать свой сайт на php.Консольное приложение выполняется в цикле while, печатает меню с параметрами, и я буду вводить число, чтобы сообщить приложению, что я хочу от него.В одном из моих вариантов я запускаю тест phpunit, когда я запускаю тест, он работает, но когда я обновляю свой тест и снова нажимаю свой параметр, phpunit отображает «Тесты не выполнены!».Когда я перезапускаю консольное приложение, оно будет работать, но у меня все еще будет та же проблема, когда я пытаюсь запустить модульный тест во второй раз.

Вот пример кода

Я устал создавать новый экземплярКоманда phpunit, а затем используйте метод run.

Я попытался выйти из цикла и снова начать вызов.

require_once __DIR__ . '/vendor/autoload.php';

public function printMenu()
{
     echo "*******menu*****";
     echo "\r\n";
     echo "option 1: do something";
     echo "\r\n";
     echo "option 2: Do unit test:";
     echo "\r\n";
     echo "option 3: Exit";
     echo "\r\n";
}

public function begin(){

    while(true){
       $this->printMenu();
       $input = trim(fgets(STDIN));

       if($input == 1){
         $this->doSomething();
       }else if($input ==2){
         PHPUnit\TextUI\Command::main(false);
       }else if($input == 3){
        break;
       }
    }
}

//Sample test class (just an example)

use PHPUnit\Framework\TestCase; 
class SampleTest extends TestCase 
{
   public function testTrueAssertsToTrue(): void { 
      $this->assertTrue(true); 
      $this->assertTrue(true); 
      $this->assertTrue(false); 
      $this->assertTrue(true); 
      $this->assertTrue(true); 
    }
}

//update will be

 use PHPUnit\Framework\TestCase; 

class SampleTest extends TestCase 
{ 
     public function testTrueAssertsToTrue(): void 
     { 
         $this->assertTrue(true); 
         $this->assertTrue(true); 
         $this->assertTrue(true); 
         $this->assertTrue(true); 
         $this->assertTrue(true); 
    }
}

1 Ответ

0 голосов
/ 16 февраля 2019

Мне удалось решить, изменив

PHPUnit\TextUI\Command::main(false); 

на

./vendor/bin/phpunit
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...