尝试运行PHPUnit Magento 2测试时出错
我创建了一个简单的hello world Magento 2测试,当我尝试运行该测试时,出现以下错误: 致命错误:声明 Magento\Framework\TestFramework\Unit\Listener\ReplaceObjectManager::startTest(PHPUnit\Framework\Test $test)必须与兼容 PHPUnit_Framework_TestListener::startTest(PHPUnit_Framework_Test $test)输入 /Applications/MAMP/htdocs/mag221/vendor/magento/framework/TestFramework/Unit/Listener/ReplaceObjectManager.php 第14行 这是phpunit.xml.dist尝试运行PHPUnit Magento 2测试时出错,magento,phpunit,magento2,Magento,Phpunit,Magento2,我创建了一个简单的hello world Magento 2测试,当我尝试运行该测试时,出现以下错误: 致命错误:声明 Magento\Framework\TestFramework\Unit\Listener\ReplaceObjectManager::startTest(PHPUnit\Framework\Test $test)必须与兼容 PHPUnit_Framework_TestListener::startTest(PHPUnit_Framework_Test $test)输入 /Ap
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/6.2/phpunit.xsd" colors="true" beStrictAboutTestsThatDoNotTestAnything="false" bootstrap="./framework/bootstrap.php">
<testsuite name="Magento Unit Tests">
<directory suffix="Test.php">../../../TestStore/Checkout/HelloMessage/Test/Unit</directory>
</testsuite>
<php>
<ini name="date.timezone" value="America/Los_Angeles" />
<ini name="xdebug.max_nesting_level" value="200" />
<ini name="memory_limit" value="-1" />
</php>
<filter>
<whitelist addUncoveredFilesFromWhiteList="true">
<directory suffix=".php">../../../app/code/*</directory>
<directory suffix=".php">../../../lib/internal/Magento</directory>
<directory suffix=".php">../../../setup/src/*</directory>
<exclude>
<directory>../../../app/code/*/*/Test</directory>
<directory>../../../lib/internal/*/*/Test</directory>
<directory>../../../lib/internal/*/*/*/Test</directory>
<directory>../../../setup/src/*/*/Test</directory>
</exclude>
</whitelist>
</filter>
<listeners>
<listener class="Magento\Framework\TestFramework\Unit\Listener\ReplaceObjectManager" />
</listeners>
<logging />
</phpunit>
../../../TestStore/Checkout/HelloMessage/Test/Unit
../../../app/code/*
../../../lib/internal/Magento
../../../setup/src/*
../../../app/code/*/*/Test
../../../lib/internal/*/*/Test
../../../lib/internal/*/*/*/*/Test
../../../setup/src/*/*/Test
HelloMessageTest.php
<?php
namespace TestStore\HelloMessage;
use TestStore\HelloMessage;
class HelloMessageTest extends \PHPUnit_Framework_TestCase
{
/**
* @var HelloMessage
*/
protected $helloMessage;
public function setUp()
{
$objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
$this->helloMessage = $objectManager->getObject('Magestore\HelloMagento\Model\HelloMessage');
$this->expectedMessage = 'Hello Magento 2! We will change the world!';
}
public function testGetMessage()
{
$this->assertEquals($this->expectedMessage, $this->helloMessage->getMessage());
}
}
首先创建HelloMessage类\app\code\TestStore\Hello\Model\HelloMessage.php
<?php
namespace TestStore\Hello\Model;
class HelloMessage
{
public function getMessage()
{
return 'Hello Magento 2! We will change the world!';
}
}
<?php
namespace TestStore\Hello\Test\Unit\Model;
use TestStore\Hello\Model\HelloMessage;
class HelloMessageTest extends \PHPUnit_Framework_TestCase
{
/**
* @var HelloMessage
*/
protected $helloMessage;
public function setUp()
{
$objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
$this->helloMessage = $objectManager->getObject('TestStore\Hello\Model\HelloMessage');
$this->expectedMessage = 'Hello Magento 2! We will change the world!';
}
public function testGetMessage()
{
$this->assertEquals($this->expectedMessage, $this->helloMessage->getMessage());
}
}
现在,您必须通过以下方式在phpunit.xml
中添加UnitTest
<testsuite name="Magento Unit Tests">
<directory suffix="Test.php">../../../app/code/TestStore/Hello/Test/Unit</directory>
</testsuite>
../../../app/code/TestStore/Hello/Test/Unit
然后,只需从magento文件夹下的控制台运行单元测试
作为参考,您也可以检查您是否可以共享您的模块测试类代码和phpunit.xml我已经更新了问题测试类代码和phpunit.xml文件您是否确定您的测试用例路径正确../../TestStore/Checkout/hellomemessage/test/Unit在phpunit.xml中?