我正在创建一个控制台应用程序,以帮助我用php开发网站。 控制台应用程序在while循环中运行,打印带有选项的菜单,我将输入一个数字来告诉应用程序我想要它做什么。在我的一个选项中,我正在运行phpunit测试,当我运行该测试时它可以工作,但是当我更新测试并再次按我的选项时,phpunit显示“未执行测试!”。当我重新启动控制台应用程序时,它可以工作,但是当我尝试第二次运行单元测试时,我仍然遇到相同的问题。
这是一个代码示例
我已经厌倦了实例化一个新的phpunit命令,然后使用run方法。
我尝试打破循环并再次调用start。
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);
}
}
答案 0 :(得分:0)
我设法通过更改来解决
PHPUnit\TextUI\Command::main(false);
到
./vendor/bin/phpunit