DAOサービスをテストしたいと思います。phpunitでsymfonyサービスを使用
問題は、テストを実行しても何も追加されないということです。テストは実行されません。 しかし、私は、設定ファイルphpunit.xml.distがOKであることを知っています。たとえば、 "use"行を間違えてテストを行った場合、エラーが表示されます。
だから私はあなたの助けが必要です。..
私の最初のテスト:
namespace RepositoryBundle\Tests\DAO;
use RepositoryBundle\Entity\User;
use RepositoryBundle\Enum\RoleEnum;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
class UserDAOTest extends KernelTestCase
{
private $userDAO;
private $logger;
public function setUp()
{
self::bootKernel();
$this->userDAO = static::$kernel->getContainer()->get('repository.userDAO');
$this->logger = static::$kernel->getContainer()->get('logger');
$logger->notice('Show the log'); // Nothing is in my console.. (I configure Monolog to display in the console)
}
public function testTRUC()
{
//Stupid test but not executed !!!???
$i = 1;
$this->assertTrue($i == 1);
}
public function testCreate()
{
//Real test but not executed !!!???
$user1 = new User();
$user1->setName("TestName");
$user1->setEmail("TestEmail");
$user1->setPassword("TestPassword");
$user1->setMemberNumber(12345);
$user1->setAdmin(true);
$user1->setRole(RoleEnum::User);
$user1 = $UserDAO->save($user1);
$this->assertTrue($user1->getId() > 0);
$this->assertEquals("TestName", $user1->getName());
$this->assertEquals("TestEmail", $user1->getEmail());
$this->assertEquals("TestPassword", $user1->getPassword());
$this->assertEquals(12345, $user1->getMemberNumber());
$this->assertEquals(true, $user1->isAdmin());
$this->assertEquals(RoleEnum::User, $user1->getRole());
}
phpunit.xml.dist私はコマンドを実行
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="phpunit.xsd"
bootstrap="bootstrap.php.cache"
backupGlobals="false"
verbose="true">
<testsuites>
<testsuite name="Project Test Suite">
<directory>../src/*Bundle/Tests</directory>
</testsuite>
</testsuites>
<php>
<const name="PHPUNIT_TESTSUITE" value="true"/>
</php>
</phpunit>
:
ご協力ありがとうございます。 symfonyとPHPUnitの新機能です。この種の問題で多くの時間を浪費しました。
useステートメントに関するあなたのコメントにもかかわらず、テストが実行されていないことはかなり明らかです。セットアップでダイで確認し、phpunit xmlファイルに行ったことを確認してください。 – Cerad
「セットアップでダイで確認する」という意味が分かりません サービスuserDAOに関するすべての行を削除しても正常に動作するため、PHPunitが正しく構成されていると思います。 それでも私はこれらの情報を追加します – Namiro